这是一项为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;
}
答案 0 :(得分:0)
您应该使用方法而不是函数,这也使代码更容易理解。 (此外,正如梅纳所提到的,英文代码中的德语名称很奇怪)
House house=new House(2,4);
house.broaden(2);
house.lengthen(4);
通常,初学者代码中的静态表示你做错了。