Java main函数为什么可以访问对象的私有成员变量

2025-03-06 20:32:42
推荐回答(5个)
回答1:

    1、Java main函数之所以可以访问对象的私有成员变量,是因为这个对象的成员变量提供了获取成员变量的方法即get方法,这样main方法就可以通过创建出这个对象,再通过这个对象调用get方法来访问这个私有成员变量;

    2、接下来通过一个例子来进一步的解释:

        首先创建一个包含私有成员变量的类,如下:

        public class Demo2 {
    private int a = 1;
    public int getA() {//提供get方法
        return a;
    }
}

        其次创建包含main的类,如下:

      public class Demo1 {
    public static void main(String[] args) {
        Demo2 demo2 = new Demo2();//创建对象
        System.out.println(demo2.getA());//通过对象调用get方法访问私有成员变量
    }
}

    这样就通过创建的对象的get方法来访问到了对象的私有成员变量了。

    

回答2:

你的类是public 的,你的类里面有一个私有变量,当然可以调用自己私有的东西,如果是别的类里面的私有变量,你再调用试试,看能调到不(绝对调用不到)

回答3:

public class A{
    private int a;
    public static test(){//其他静态方法也能访问啊
        A a=new A();
        a.a=2;
        System.out.println(a.a);
    }
}

因为这个main()是Test.main()  该类的静态方法访问该类的私有成员 没啥好奇怪的吧

回答4:

private就是只能类内的成员存取

回答5:

  1. 首先被private修饰的成员变量,在     本类中   都可以访问得到。

  2. 其次非静态类的变量只能够被非静态类所调用,那么为什么这个main方法是静态的也能够访问呢?因为!你在main方法中有这么一句:Test tobj = new Test(),由于Test是非静态类而且是本类,所以它能够访问得到私有成员变量i,然后它的引用tobj也能够访问得到

总结,不是main函数访问得到,是非静态类Test()的引用访问得到。

说的比较多,不过你肯定能懂