原始 class 变量的算术运算
Arithmetic operation on primitive class variables
找不到对正在发生的事情的明确描述,所以我想将其提交给社区。
public class Temp {
static int i;
int j;
int sum = i+j;
}
public class Main{
public static void main(String[] args){
Temp obj = new Temp();
obj.i = 1;
obj.j = 2;
System.out.println(obj.sum); //returns '0'
}}
是不是实例化时整数i和j都为空,所以'sum'变量为空?
提前致谢!
Is it because both integers i and j were empty during instantiation
that the 'sum' variable is empty?
是的,i+j
是在对象实例化的时候赋值给'sum'的。默认情况下 java 将 0 分配给 int
值,当您不分配值时。
您需要通过直接为其赋值来更新 sum
变量。
obj.i = 1;
obj.j = 2;
obj.sum = obj.i + obj.j.
解决方法是在您的 Temp class 中创建一个 getter 方法,而不是变量 sum
:
public class Temp {
static int i;
int j;
public int getSum() {
return i + j;
}
}
然后打印总和:
System.out.println(obj.getSum());
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()
}
}
当您创建另一个将由 main 方法使用的 class 时
数字数据字段设置为零
字符字段设置为 Unicode \u0000
布尔字段设置为 false
作为对象引用的字段设置为 null
或(空),例如 String data fields
找不到对正在发生的事情的明确描述,所以我想将其提交给社区。
public class Temp {
static int i;
int j;
int sum = i+j;
}
public class Main{
public static void main(String[] args){
Temp obj = new Temp();
obj.i = 1;
obj.j = 2;
System.out.println(obj.sum); //returns '0'
}}
是不是实例化时整数i和j都为空,所以'sum'变量为空?
提前致谢!
Is it because both integers i and j were empty during instantiation that the 'sum' variable is empty?
是的,i+j
是在对象实例化的时候赋值给'sum'的。默认情况下 java 将 0 分配给 int
值,当您不分配值时。
您需要通过直接为其赋值来更新 sum
变量。
obj.i = 1;
obj.j = 2;
obj.sum = obj.i + obj.j.
解决方法是在您的 Temp class 中创建一个 getter 方法,而不是变量 sum
:
public class Temp {
static int i;
int j;
public int getSum() {
return i + j;
}
}
然后打印总和:
System.out.println(obj.getSum());
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()
}
}
当您创建另一个将由 main 方法使用的 class 时
数字数据字段设置为零
字符字段设置为 Unicode \u0000
布尔字段设置为 false
作为对象引用的字段设置为 null
或(空),例如 String data fields