public class Basics {
Basics b = new Basics();
int instanceVariable = 0;
public void behavior() {
System.out.println("Print Something");
}
b.behavior(); // Why this line, b.behavior doesn't work?
public static void main(String[] args){
Basics b = new Basics(); /* Why are we allowed to create an
* object of same name again within
* the same class */
b.behavior(); // This line works
}
}
在上面的类中,我能够创建object。但是我不能在任何类之外调用
b.behavior
,但是我可以在一个方法中做到这一点。为什么呢?有什么区别?public class Basics1 extends Basics{
Basics b = new Basics();
Basics1 b1 = new Basics1();
b = b1.instanceVariable; // I don't see error in this line, but previous line shows //error.
b1.instanceVariable // This line doesn't work
}
为什么
b1.instanceVariable
不起作用,instanceVariable
是基类实例变量。 最佳答案
您需要了解一个类是“类型定义”,而不是代码块或语句序列。
您不能只在类型定义中编写任意语句。
即使这样,"b1.instanceVariable"
也不是语句。 "b1.instanceVariable"
在语句上下文中不表示任何内容。