问题1:
类访问权限的作用是什么?我觉得是否允许一个类的方法和字段被类使用者访问,由它们各自的访问权限足够控制了。
类访问权限和方法、字段访问权限的优先级?前者对后者有控制权吗?(比如包含关系)问题2:
println(100);
这里调用的函数是println(int)还是println(Object),我看了下,两个方法都有重载,那么是调用的前一个还是先装箱成
Integer再调用?有什么规则?
由此引发的问题:自动装箱发生在哪些情况下?谢谢先。

解决方案 »

  1.   

    我觉的类的访问权限和方法的访问权限是不同粒度的考虑,举个例子:
    在一个屋里,我们不希望日记本被别人看到,所以我们把日记本锁了起来;如果我们不希望别人写我们的本子,我们就不允许别人写;这时候
    我们是把日记设为private, 而对于本子,我们只是把“写”设为private。两个都是有必要的。
    另外,public,private并不能完全保证安全性,它们只是表明了不同的访问级别。private的方法如果想被使用到,都会间接的通过
    public的方法访问到,否则这个方法就没有意义。
      

  2.   

    第二个试试的,就知道是调用print(int),如果没有这个就会调用print(Object);如果定义了print(Integer),print(int),
    print(Object) 那么调用的关系是print(int) 先于 print(Integer),最后才是print(Object); 
      

  3.   

    你说的我不太明白。问题1中,假设一个类没有设置public,那么即使该类的方法被设置为public,在包外也不能访问。
    这是不是说明类访问对成员访问优先,有绝对的控制权?
      

  4.   

    类的权限设置是为了实现类间的继承问题
    子类继承父类,也只能调用父类中的public字段和public方法
    类对自身的成员的访问的权限肯定大于外界对其成员的访问,这在于对成员的设置权限
      

  5.   

    问题1 类的访问权限 主要是对子类继承关系的限制,对于 继承private class 的父类 ,其父类对子类而言全是不可见的。
    问题2 类型加宽  如果int 类型 首先去匹配参数为 int 的方法 ,随后再是 Integer .最后匹配 Object类型。
      

  6.   

    子类继承父类,也只能调用父类中的public字段和public方法 .........疑问
    难道protected是不可见的吗?
      

  7.   


    请看问题回答。
    另外6楼:class可以设置为private?