就好像类的权限小,类中方法的权限大,而调用此方法必须通过这个类来调用,这样,这个类其中的方法就失去了有比所属的类的权限更大的价值,但是在java中似乎是被允许的,这是为什么呢?有什么用?例子:
class A
{
  public void a1()
  {
    //...........
  }
}
并没出错

解决方案 »

  1.   

    如果你能让他引用此类不就OK了吗?import就是做着事情的.
      

  2.   

    这是两个不同的概念:
     对Class来说,public,default,private是控制类的可见性
     而对类的成员不说,public,default,private是控制类成员的可见性。楼主不要搞混了。
      

  3.   

    谢谢上面的回答,可能我没问清楚,没有解开我的疑问。我想问的是:比如,包AAA中有一个default的类A,A里有个public的方法a1(),现在想在其他包中使用这个a1(),比如A a=new a(); a.a1();,但这是不能成功的,因为类A在别的包里不可见,所以a1()也没法用,尽管它是public的权限。但是java中这样写没有报错,难道除了通过A来调用a1()还有其他不受A的权限限制的方法调用a1()?
      

  4.   

    先要类可见,才有可能使用类的成员。如果类都不可,就象没申明一样,又何从调用类中的成员呢(无论是public还是default)?就象回家一样,大门都进不了,如何去拿小房间里的东西?
      

  5.   

    帮楼主顶一下!
    楼主的意思就是说,一个类的权限可以比这个类中的方法的权限小,这样在java中是可以编译通过的,这样是不是没有意义?
    就像楼上说的,大门都进不了,那小房间里的东西有再大的权限也是没有意义的啊!
      

  6.   

    这是java设计者的用心良苦把,
    通过类的访问控制结合类成员的访问控制
    来组合出各种访问控制的效果.
    挺好的啊
    如果只有类访问控制或者只有类成员访问控制,
    那楼主想想,是不是很多状况表达不出来
      

  7.   

    同意lzmailcn(一年前的新手) 的