对基本类变量的算术运算

时间:2017-04-09 02:48:04

标签: java class variables scope primitive

无法找到有关正在发生的事情的明确描述,所以我认为我会将其提交给社区。

.js

是因为实例化期间i和j都是空的,'sum'变量是空的吗?

提前致谢!

3 个答案:

答案 0 :(得分:1)

Temp obj = new Temp(); // creates an instance of object type Temp

此处,数据成员ijsum初始化为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 + ji时将其初始化为j

在此之后,只需编写obj.setSum()方法设置sumobj.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