一个类的成员函数和成员变量(之前学c++,习惯这样说)的访问权限是根据什么因素来设定的,是不是成员函数与变量的访问权限仅仅是为了设置权限问题,还是与这个类的具体成员含义有关,不知道我说清楚没有,直白一点说,假如有 class AA{
          paivate int a;
            ……………………
            ……………………                }
对于这个a的权限设置为paivate,仅仅是考虑对a的访问控制而设置为private,还是因为根据这个类(AA)要表达的具体成员含义而设置为private的??

解决方案 »

  1.   

    我认为就是根据你要定义的属性或者方法来设置的,比如说你在一个类中定义一个属性,而你不想让其他类使用就定义为private,你想公用就设置为public,但是一般一个类中的属性基本都是private,这也就是所谓的封装吧,如果你想修改或者调用也是可以的,你可以使用get,set方法!拿方法来说,如果你想让你这个类中的方法公用,那就设置为public,如果想封装起来就设置为private.如果想让子类调用不想让其他不相干的类调用就设为protected.如果想让在同一个包中的类调用就设置为默认的就可以,还是static,final,abstract等都是可以用来修饰类.属性.方法的.一般的java书中都有详细的讲解!
      

  2.   

    Java中的变量或者说属性,都是通过方法去访问的,正像楼上说的那样是封装,其实就是出于安全的考虑。你想想要是设置成public的,我通过类的实例化的对象就能改变类的属性,这样就太不安全了。
    我就写两个不标准的代码示意一下:class A{
       public int a;
       private int b;   public void setB(int i){
           this.B = i;
       }
    }然后你实例化这个类A,也就是A AA = new A();你如果要是访问A,因为A是public的,那么你可以这么做:AA.a = 8;但是你要访问b却只能通过setB方法,AA.setB(8);也就是说你不能绕过方法直接访问变量或者属性。