无法找到有关正在发生的事情的明确描述,所以我认为我会将其提交给社区。 p>
.js
是因为实例化期间i和j都是空的,'sum'变量是空的吗?
提前致谢!
答案 0 :(得分:1)
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
请注意,临时对象sum
的数据成员obj
的值仍为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()
}
}
答案 1 :(得分:0)
是因为在实例化期间,整数i和j都是空的 'sum'变量是空的?
是的,在实例化对象时,i+j
被赋值为'sum'。默认情况下,当您未指定值时,java会将0分配给int
值。
您需要通过直接为其分配值来更新sum
变量。
obj.i = 1;
obj.j = 2;
obj.sum = obj.i + obj.j.
解决方法是在Temp类中创建一个getter方法而不是变量sum
:
public class Temp {
static int i;
int j;
public int getSum() {
return i + j;
}
}
然后打印总和:
System.out.println(obj.getSum());
答案 2 :(得分:0)
当您创建另一个将由main方法
使用的类时数字数据字段设置为零
字符字段设置为Unicode \u0000
布尔字段设置为false
作为对象引用的字段设置为null
或(空),例如String data fields