Avatar billede helle_jensen Nybegynder
27. november 2000 - 21:18 Der er 4 kommentarer og
2 løsninger

Figur

Det er en klasse som skal anvendes i en anden klasse (applikationsprogram).
Men er stødt ind i flere problemer på en gang.

class rektangel{
private int bredde;
private int hoejde;
public rektangel(int b, int h){
bredde = b;
hoejde = h;
}
public rektangel(rektangel figur){//Skulle være en constructer metode,der initaliserer medlems variabler for den pågældende objekt.
    rektangel=rektangel;
}
public void set_bredde (int b ){
    Text.prompt (\"Indsæt bredde\");
    bredde = Text.readline(b);
}
public int get_bredde () {//skulle læse bredde
}
public void set_hoejde (int h ){
    Tekxt.prompt (\"Indsæt hoejde\");
    hoejde = Text.readline(h);
}
public int get_hoejde () {//skulle læse hoejde
}
public int areal (){
areal=(h*b);
}
public int omkreds () {
omkreds=((h*2)+(b*2));
}
public void tegn (char lodret, char vandret){
System.out.print(lodret);
for (int b = 2; b<bredde; b++)
    System.out.println(vandret);
}
public boolean identisk(rektangel figur){//Skulle undersøge om X rektanglen er Identisk med den pågældende rektangel.
    rektangel R1 = new rektangel (h,b);
    rektangel R2 = new rektangel (h,b);
   
    if (R1 == R2)
   
    return false;
    else {     
    return true;
    }
    }
}
Avatar billede stigc Nybegynder
27. november 2000 - 21:46 #1
jammen kære Helle. Hvis du er stødt ind i problemer, må du jo fortælle om dem.........
Avatar billede helle_jensen Nybegynder
27. november 2000 - 22:21 #2
1.Ved ikke om hvordan man bruger get.
2. ved ikke om dette er rigtigt:

public rektangel(rektangel figur)
    rektangel=rektangel;

3.Ved ikke om dette er rigtigt:
rektangel R1 = new rektangel (h,b);
    rektangel R2 = new rektangel (h,b);
    if (R1 == R2)
Avatar billede stigc Nybegynder
27. november 2000 - 22:33 #3
Her er lidt kode der skulle være rigtig (= det din lærere forventer, men der er ikke så meget forklaring!)

skal der undesøges om det er det samme objekt, eller om de har de samme sider?

public boolean identisk(rektangel figur){//Skulle undersøge om X rektanglen er Identisk med den pågældende rektangel.

    if (figur.h == this.h && figur.b == this.b)
    return true;
    else return false;
    }

public boolean identisk(rektangel figur){//Skulle undersøge om X rektanglen er Identisk med den pågældende rektangel.

    if (figur == this)
    return true;
    else return false;
    }
- - - - - - - - - - - - - - - -





Avatar billede davsclaus Nybegynder
28. november 2000 - 00:29 #4
Jeg har 3 kommentar:

1) Jeg ved da hvordan man bruger getXXX()

public int get_bredde () {//skulle læse bredde
  return bredde;
}

public int get_hoejde () {//skulle læse hoejde
  return hoejde;
}


2) Og constructoren var forkert, den skal være

public rektangel(Rektangel figur) {
  rektangel = figur;
}


3) Det er kotyme at klassenavnet er stavet med stort begyndelsebogstav, så
class rektangel skal være
class Rektangel
Avatar billede helle_jensen Nybegynder
28. november 2000 - 00:58 #5
Til stigc 
Hvad mener du med \"this\" i dit ex.
Avatar billede davsclaus Nybegynder
28. november 2000 - 17:38 #6
    if (figur.h == this.h && figur.b == this.b)
Hun har gemt figures attributter i varaiblerne
    private int bredde;
    private int hoejde;

og ikke i .h og .b

så den burde være
    if (figur.getHoejde() == this.hoejde && figur.getBredde() == this.bredde)


this betyder at det er på den pågældende klasse variablen skal aflæses og ikke f.eks. fra metodens signatur. (kan bruges pga. navnesammenfalde)

f.eks

public class figur {
  private int bredde;

  public void setBredde(int bredde) {
    bredde = bredde; // Denne går ikke da compilere ikke kan skelne imellem
                    // private int bredde og den fra metode kroppen
    this.bredde = bredde; // så nu kan den kende forskel imellem de to bredder.
  }

}

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester