在这段代码中:
public class Main{
private void method()
{
System.out.println("inside method");
}
public static void main(String[] args) {
Main obj = new Main();
obj.method();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我们在课堂上可以使用类中的对象访问私有方法,而我们不能在课外进行访问?(我的意思是什么是逻辑原因?)
另一种情况是:main方法是静态的,为什么没有编译器错误抱怨"从静态方法访问非静态方法"?
因为它是私人的.类本身可以使用其私有属性和行为.外部课程不能使用的原因是阻止外部课程干涉私人事务.简单不是吗?
在这里,您实际上是使用实例上下文调用方法.尝试在没有它的情况下调用它obj肯定会抱怨.顺便说一句,谁说你不能从静态方法访问非静态方法.实际上,您无法在静态上下文中调用非静态方法.