class Cube{
int side;
int area = side * side;
}
public class Chronos{
public static void main(String[]args) {
Cube a = new Cube();
a.side = 2;
System.out.println(a.area);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么它输出"0"而不是将给定变量乘以
a.side=2它自己并给出a.area=4.我的思维过程是,它会看到打印的命令a.area,检查Cube并看到它a.side本身已经确定的倍增.
因为
int area=side*side
Run Code Online (Sandbox Code Playgroud)
初始化多维数据集对象时发生,因此设置为0*0 = 0;
要改变这个,你必须创建一个方法,即setSide或getArea,并在那里进行计算.即(根本不需要使用区域变量)
public int getArea(){
return side*side;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |