使用对象访问私有方法

Moh*_*oud 3 c# java oop

在这段代码中:

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方法是静态的,为什么没有编译器错误抱怨"从静态方法访问非静态方法"?

Ade*_*ari 6

  1. 因为它是私人的.类本身可以使用其私有属性和行为.外部课程不能使用的原因是阻止外部课程干涉私人事务.简单不是吗?

  2. 在这里,您实际上是使用实例上下文调用方法.尝试在没有它的情况下调用它obj肯定会抱怨.顺便说一句,谁说你不能从静态方法访问非静态方法.实际上,您无法在静态上下文中调用非静态方法.