【发布时间】:2014-09-02 01:06:05
【问题描述】:
这是我的 a.java 文件,它可以编译:
class a{
static int k=2;
private static void main(String arg[]){
System.out.println(k);
}
}
main 函数是从外部调用的(私有成员只能在本地访问)。
下面的代码给了我一个编译错误:
class A{
private int data=40;
private void msg(){System.out.println("Hello java");}
}
public class Simple{
public static void main(String args[]){
A obj=new A();
System.out.println(obj.data);//Compile Time Error
obj.msg();//Compile Time Error
}
}
如果访问修饰符是在编译时确定的,那么为什么 Code 1 dint 会给我一个编译时错误?
【问题讨论】:
-
您的问题不清楚 - 您没有提供足够的代码,在第一个示例中 不起作用 让我们知道问题所在。您还没有指定第二种情况下的编译错误是什么。请阅读tinyurl.com/so-list
-
你得到的编译错误是什么?
-
亲爱的@virendra,第一个类编译是因为 jvm 从未调用私有成员,但在第二个类中,您正在调用私有成员。
-
我不同意这个问题不清楚。我认为它应该重新打开。
标签: java access-modifiers