Java学习笔记(类的可见性)
来源:互联网 发布:周朝 知乎 编辑:程序博客网 时间:2024/05/22 06:09
1)类的可见性:public;友好的(无关键字);protected;private;
public:公开类,在包内,包外都可见,是可见性级别最高的;
友好的:也是默认的安全级别,包外不可见,包内可见.用在内部类同protected级别相同.
protected:保护级,只能用于内部类.对类及子类(包内子类,包外子类不可见)和包内其它类可见.
private:私有级,只能用于内部类,只对类本身可见。
类的可见性还是比较复杂,特别是内部类嵌套后,但基本规则还是上面所述,因此建议在写类时,如果嵌套,
不要超过2层,即只要嵌套一层即可。这样处理比较简单,没必要多次多可见性嵌套把事情弄复杂。
下面是示例代码:
public class MyClass02 {//保护级对相同包中子类和友好类可见protected class MyClass03{}//下面的类只对本类可见,在类外无法访问呢.private class MyClass04{}//同protected.class MyClass05{}//对子类可见,包内,包外其它类都可见.public class MyClass06{}}class MyClass021 extends MyClass02{MyClass03 theA =new MyClass03();MyClass05 the05=new MyClass05();}class MyClass11{MyClass03 theA=new MyClass02().new MyClass03();}
//位于另外一个包.该类继承与MyClass02class MyClass022 extends MyClass02{public void Do(){//MyClass03,MyClass05不可见,下面语句编译有错.//MyClass03 theA =new MyClass03();//MyClass05 the05=new MyClass05();//下面语句可以.MyClass06 the6=new MyClass06();}}
2)类的成员可见性:
public:公共成员,其它类可见(包内,包外都可见),包内包外子类都可见;内部嵌套类可见;
protected:保护级,包内其它类可见,包内包外子类都可见;内部嵌套类可见;
无关键字:友好的,包内其它类可见,但包内包外子类都不可见;内部嵌套类可见;无继承性。
private:私有的,其它类不可访问,但对该类的内部类可见;
另外需要注意的时,内部类可以定义在类的方法里,这个时候的可见性是同作用域密切相关的.一般情况
下建议不要这样去使用类,会增加维护和理解的困难.
- Java学习笔记(类的可见性)
- Java学习笔记(类的可见性) http://blog.csdn.net/hawksoft/article/details/8453637
- Java并发编程实战学习笔记(二)-可见性
- Java学习笔记--Volatile关键字和内存可见性
- JAVA学习笔记-----可见性(synchronized/volatile)
- [JAVA学习笔记-76]volatile的原子性与可见性
- java类和对象学习笔记(二)数据域封装和可见性修饰符
- android学习笔记4 - Visibility控件的可见性
- JAVA类成员的可见性
- C#学习笔记三 类的成员变量的可见性需要个性化声明
- java学习12--线程的可见性,synchronized,volatile使用
- JQuery学习笔记-可见性选择器
- java多线程的可见性
- java的内存可见性
- JAVA多线程之内存可见性笔记
- Java多线程内存可见性实现 synchronized (java 学习笔记)
- java多线程学习笔记2---理解原子性和可见性
- Java并发学习笔记(六)-互斥性和内存可见性
- vxworks Shell下常用的命令
- 云图 Cloud Atlas
- 一个不知名前辈的创业史(血泪)
- 浅谈 typeglob
- SessionInfoServlet(38)
- Java学习笔记(类的可见性)
- 【Qt开发】关于编译时报"undefined reference to"问题
- strchr源码
- linux-2.6.14移植到S3C2440
- 程序员面试题精选100题(43)-n个骰子的点数
- java和oracle日期互转 (转)
- codeforces 158C
- 多线程创建的两种方式和线程同步问题实例
- 公开课博弈论