OOP中一项有趣的任务,我没有得到

时间:2016-03-29 12:14:39

标签: java oop object

这是一项为Java初学者准备考试的任务。这让我生病了

有人可以解释一下为什么会这样吗? 有人可以纠正我吗:) 我试图一步一步地做所有方法,对我来说是这样的:

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

这意味着:

b.hohe = 2
b.breite = 3

2)Baumhaus c = machBreiter(b);

c.hohe = 2
c.breite = 4

3)c.nachbar = b;

c.nachbar.hohe = 2
c.nachbar.breite = 3

4)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 

有人可以解释一下为什么在程序结束时b.hohe = 4 ??对我来说这是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;
}

1 个答案:

答案 0 :(得分:0)

您应该使用方法而不是函数,这也使代码更容易理解。 (此外,正如梅纳所提到的,英文代码中的德语名称很奇怪)

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

通常,初学者代码中的静态表示你做错了。