“你好,阿米戈!今天,比拉博会谈论变量初始化的顺序。”
假设你正在看一些代码。变量得到什么值?
代码
class Cat
{
public int a = 5;
public int b = a + 1;
public int c = a * b;
}
代码
class Cat
{
public int a = getSum();
public int b = getSum() - a;
public int c = getSum() - a - b;
public int getSum()
{
return a + b + c;
}
}
“真的允许吗?”
“当然。声明类的成员方法和字段的顺序并不重要。”
类自上而下加载,因此字段只能访问已加载的其他字段。在本例中,b 可以访问 a,但它对c 一无所知。
“结果会怎样?”
“创建变量时,它们将获得默认值。”
代码 | 实际发生的情况如下 |
---|---|
|
|
|
|
“天哪!这么简单。谢谢你,比拉博。你真够朋友!”
“太棒了!比拉博终于交了个朋友!”
GO TO FULL VERSION