Java学习笔记(类的可见性) http://blog.csdn.net/hawksoft/article/details/8453637

来源:互联网 发布:oppoa209软件下载 编辑:程序博客网 时间:2024/05/21 10:10
 

Java学习笔记(类的可见性)

 3367人阅读 评论(2) 收藏 举报
 分类:
 
 

1)类的可见性:public;友好的(无关键字);protected;private;
    public:公开类,在包内,包外都可见,是可见性级别最高的;
    友好的:也是默认的安全级别,包外不可见,包内可见.用在内部类同protected级别相同.
   protected:保护级,只能用于内部类.对类及子类(包内子类,包外子类不可见)和包内其它类可见.
   private:私有级,只能用于内部类,只对类本身可见。
类的可见性还是比较复杂,特别是内部类嵌套后,但基本规则还是上面所述,因此建议在写类时,如果嵌套,
不要超过2层,即只要嵌套一层即可。这样处理比较简单,没必要多次多可见性嵌套把事情弄复杂。
下面是示例代码:

[java] view plain copy
 print?
  1. public class MyClass02 {  
  2.     //保护级对相同包中子类和友好类可见  
  3.     protected class MyClass03{  
  4.   
  5.     }  
  6.     //下面的类只对本类可见,在类外无法访问呢.  
  7.     private class MyClass04{  
  8.   
  9.     }  
  10.     //同protected.  
  11.     class MyClass05  
  12.     {  
  13.           
  14.     }  
  15.     //对子类可见,包内,包外其它类都可见.  
  16.     public class MyClass06  
  17.     {  
  18.           
  19.     }  
  20. }  
  21. class MyClass021 extends MyClass02  
  22. {  
  23.     MyClass03 theA =new MyClass03();  
  24.     MyClass05 the05=new MyClass05();  
  25.       
  26. }  
  27. class MyClass11  
  28. {  
  29.     MyClass03 theA=new MyClass02().new MyClass03();  
  30. }  
[java] view plain copy
 print?
  1. //位于另外一个包.该类继承与MyClass02  
  2. class MyClass022 extends MyClass02  
  3. {  
  4.     public void Do()  
  5.     {  
  6.         //MyClass03,MyClass05不可见,下面语句编译有错.  
  7.         //MyClass03 theA =new MyClass03();  
  8.         //MyClass05 the05=new MyClass05();  
  9.           
  10.         //下面语句可以.  
  11.         MyClass06 the6=new MyClass06();  
  12.     }  
  13.       
  14. }  


2)类的成员可见性:
      public:公共成员,其它类可见(包内,包外都可见),包内包外子类都可见;内部嵌套类可见;
      protected:保护级,包内其它类可见,包内包外子类都可见;内部嵌套类可见;
      无关键字:友好的,包内其它类可见,但包内包外子类都不可见;内部嵌套类可见;无继承性。
      private:私有的,其它类不可访问,但对该类的内部类可见;
另外需要注意的时,内部类可以定义在类的方法里,这个时候的可见性是同作用域密切相关的.一般情况
下建议不要这样去使用类,会增加维护和理解的困难.

0 0
原创粉丝点击