Temp obj = new Temp(); // creates an instance of object type Temp
这里,数据成员i
,j
和sum
被初始化为0
obj.i = 1; // assigns value of Temp data member, i to 1
obj.j = 2; // assigns value of Temp data member, j to 2
注意,温度对象obj
的数据成员sum
的值仍然是0
。
要制作sum = i + j
,当初始化i
和j
时,需要将其初始化为i + j
。
只需编写obj.setSum()
方法来设置sum
和obj.getSum()
之后的值以检索它的更新值。
public class Temp {
static int i;
int j;
int sum = i+j;
public void setSum(){
sum = i + j;
}
public int getSum(){
return sum;
}
}
public class Main{
public static void main(String[] args){
Temp obj = new Temp();
obj.i = 1;
obj.j = 2;
obj.setSum();
System.out.println(obj.sum); //OR obj.getSum()
}
}
参见[*§4.12.5。变量的初始值*](http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.12.5)。 – trashgod
“空”或更确切地说它们是0. Java原语从不“空”,它们被初始化为0(或false)。引用可以是'null',它也不是真的“空”,null是一个值。 – markspace
重申什么是空格说的。 Java中没有“空”变量或字段。每个变量或字段都有一个*确定的值*,任何时候您都可以观察它。该值是明确初始化(例如'int foo = 42;')或隐式*默认初始化*的结果。从你的心智模型和你的词汇中删除“空变量”! –