2016-03-29 7 views
0

Java初心者のための試験準備をする課題です。それは私が病気になります私が得ないOOPの面白い仕事

私はなぜそうだと私は説明できますか? 誰かが私を訂正してくれますか? 私はすべての方法をステップバイステップで行いました。私のために、それはそうです:

1)Baumhaus b = bauHaus(2,3);

それは意味:

b.hohe = 2 
b.breite = 3 

2)Baumhaus C = machBreiter(B)。 3)c.nachbar = b; 1230。 (b); Baumhaus d = machHoeher(b);

d.hohe = 3 
d.breite = 3 

5)d.nachbar = b;

d.n.h = 3 
d.n.b = 3 

6)++ c.hoehe;

c.h = 3 
c.b = 4 

7)Baumhaus e = machHoeher(b);

e.h = 3 
e.b = 3 

8)e.nachbar = c;

e.n.h =3 
e.n.b =4 

9)e.breite = b.breite - 1;

e.b = 2 

10)c.hoehe ++;

c.h = 4 
c.b = 4 

11)c.breite - = 2;

c.b = 2 

誰かが、なぜ= 4プログラムb.hoheの終わりに私に説明してもらえます?私にとってそれはまた、コードをより理解ができている、2

public class Hausbauer { 
    static Baumhaus bauHaus(int hoehe, int breite){ 
     Baumhaus b = new Baumhaus(); 
     b.hoehe = hoehe; 
     b.breite = breite; 
     return b; 
} 

    static Baumhaus machBreiter(Baumhaus b){ 
     Baumhaus bb = new Baumhaus(); 
     bb.hoehe = b.hoehe; 
     bb.breite = b.breite + 1; 
     return bb; 
} 

    static Baumhaus machHoeher(Baumhaus b){ 
     b.hoehe++; 
     return b; 
} 

public static void main(String[] args){ 


    Baumhaus b = bauHaus(2, 3); 
    Baumhaus c = machBreiter(b); 
    c.nachbar = b; 


    Baumhaus d = machHoeher(b); 
    d.nachbar = b; 
    ++c.hoehe; 
    Baumhaus e = machHoeher(b); 
    e.nachbar = c; 
    e.breite = b.breite - 1; 
    c.hoehe++; 
    c.breite -= 2; 
    boolean bUndCBenachbart = (b.nachbar == c || c.nachbar == b); 

    //QUESTIONS AND ANSWERS 
    System.out.println(bUndCBenachbart); 
    System.out.println(b.breite ); 
    System.out.println(b.hoehe ); 
    System.out.println(c.breite ); 
    System.out.println(c.hoehe ); 
    System.out.println(d.breite ); 
    System.out.println(d.hoehe ); 
    System.out.println(e.breite ); 
    System.out.println(d.hoehe ); 
    System.out.println(Baumhaus.naechsteNummer ); 

} 
} 

class Baumhaus{ 
    public int hoehe; 
    public int breite; 
    public Baumhaus nachbar; 
    public int nummer = ++naechsteNummer; 
    static int naechsteNummer = 0; 
} 
+0

ドイツ語のクラス名と変数名を持つJava試験ですか?まずは*良い*試験のようには見えません。 – Mena

+1

'machHoeher(Baumhaus b)'のように、 'machBreiter(Baumhaus b)'はおそらく、新しいインスタンスではなくパラメータとして渡された同じインスタンスを返すべきです。 – Thomas

+0

@ Meenaドイツ語の教授や教師の中には、(getHeight()の代わりに 'gibHoehe()'のようなコードを作成する人もいます。 – Thomas

答えて

0

あなたがメソッドの代わりに関数を使用する必要がありました。 (メナが言及したように加えて、英語のコードのドイツ名は奇妙です)

House house=new House(2,4); 
house.broaden(2); 
house.lengthen(4); 

通常、初心者のコードの静的は、あなたが何か間違ったことをしたサインです。

+0

それは準備されているタスクです...だから私はそれを書いていないので、なぜコードを実行した後にb.hohe = 4.あなたの答えは私の質問にはありません:P –

+0

その場合、Peter Lawreyの回答が最も役に立ちます:-)。 - 正直なところ、それは起こることを理解する最も簡単な方法です... –

関連する問題