我是Java的初学者,这似乎很容易,但我无法弄清楚我在下面做错了什么。
我创建了一个包含3个整数a,b和c的类。
public class Temp {
private int a;
private int b;
private int c = a - b;
public Temp(int a, int b) {
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public int getB() {
return b;
}
public int getC() {
return c;
}
然后在主类中,我创建了一个对象并给出了a和b的值。但是为什么不进行c计算(在打印结果时我得到0,如下所示)?
主:
public class Main122 {
public static void main(String[] args) {
Temp z = new Temp(8, 7);
System.out.println(z.getA());
System.out.println(z.getB());
System.out.println(z.getC());
}
}
结果:
8
7
0
请帮帮我,谢谢!
答案 0 :(得分:2)
因为 int 的默认值为0,当您声明c时,a和b的值为0.
如果要更改c的值,您应该为其赋值:
public Temp(int a, int b) {
this.a = a;
this.b = b;
this.c = this.a - this.b;
}
答案 1 :(得分:1)
您尝试在声明点设置c
值。你不应该为例如成员这样做。取而代之的是,
public class Temp {
private int a;
private int b;
private int c;
public Temp(int a, int b) {
this.a = a;
this.b = b;
this.c = this.a - this.b;
}
...
}
如果你保持其他一切不变,你应该
8
7
1
根据您当前的代码,您获得0
,因为在您指定c = a - b
时,a
和b
都已初始化为其默认值(因此0
和int
的默认值为0 - 0 = 0
。