(22):优先考虑静态成员类
来源:互联网 发布:linux中查看文件内容 编辑:程序博客网 时间:2024/06/05 03:15
嵌套类是指被定义在另一个类的内部的类。
嵌套类存在的目的应该只是为了它的外围类提供服务。如果嵌套类将来有可能会用于其他的某个环境,它就应该是顶层类。
嵌套类有四种:静态成员类,非静态成员类,匿名类,局部类。除了第一种,其他三种称为内部类。
静态成员类是最简单的一种嵌套类。最好把它看做是普通的类,只是碰巧被声明在另一个类的内部而已。
从语法上来讲,静态成员类和非静态成员类之间唯一的区别是,静态成员类的声明中包含修饰符static。但是静态成员类和非静态成员类之间有很大不同。非静态成员类的实例方法内部,可以调用外围类实例(宿主)的方法,或者利用修饰过的this构造获得外围类实例(宿主)的引用。
静态成员类的实例可以独立于它的外围类的实例之外独立存在。
非静态成员类的实例不能独立于它的外围类的实例(宿主)独立存在。
嵌套类存在的目的应该只是为了它的外围类提供服务。如果嵌套类将来有可能会用于其他的某个环境,它就应该是顶层类。
嵌套类有四种:静态成员类,非静态成员类,匿名类,局部类。除了第一种,其他三种称为内部类。
静态成员类是最简单的一种嵌套类。最好把它看做是普通的类,只是碰巧被声明在另一个类的内部而已。
从语法上来讲,静态成员类和非静态成员类之间唯一的区别是,静态成员类的声明中包含修饰符static。但是静态成员类和非静态成员类之间有很大不同。非静态成员类的实例方法内部,可以调用外围类实例(宿主)的方法,或者利用修饰过的this构造获得外围类实例(宿主)的引用。
静态成员类的实例可以独立于它的外围类的实例之外独立存在。
非静态成员类的实例不能独立于它的外围类的实例(宿主)独立存在。
当非静态成员类的实例被创建的时候,它和外围实例之间的关联关系也随之被建立起来,而且这种关联关系以后不能被修改。通常情况下,当在外围类的某个实例方法的内部调用非静态成员类的构造器时,这种关联关系被自动建立起来。如果声明成员类不需要访问外围实例,就始终要把static修饰符放在它的声明中。
如果一个嵌套类需要在单个方法之外仍然是可见的,或者他太长了,不适合方法内部,就应该使用成员类。如果成员类的每个实例都需要一个指向其外围实例的引用,就要把成员类做成非静态的;否则就做成静态的。假设这个嵌套类属于一个方法的内部,如果你需要在一个地方创建实例,并且已经有了一个预置的类型可以说明这个类的特征,就把他做成匿名类;否则,就做成局部类。
0 0
- (22):优先考虑静态成员类
- effective java(22) 之优先考虑静态成员类
- 优先考虑静态成员类。
- 第22条:优先考虑静态成员类
- Effective Java 第 22 条:优先考虑静态成员类
- 第22条:优先考虑静态成员类
- 第二十二条:优先考虑静态成员类
- EffectiveJava之18-优先考虑静态成员类
- 学习effective java-22类和接口之优先考虑静态成员类
- 第22条 类与接口——优先考虑静态成员类
- 《Effective java》读书记录-第22条-优先考虑静态成员类
- 第22条:优先使用静态成员类
- Effective Java Item1:优先考虑使用静态工厂方法
- (26):优先考虑泛型
- (27):优先考虑泛型方法
- Effective Java(用函数对象表示策略、优先使用静态成员类)
- Effective Java(用函数对象表示策略、优先使用静态成员类)
- 类的 静态成员 --- 静态成员变量 、 静态成员函数
- 网易实习——消除重复元素
- Struts2的介绍和入门(一)
- Java_修饰符
- Google 的软件工程经验总结
- Centos7 使用官方YUM源安装Mysql
- (22):优先考虑静态成员类
- 隐藏tomcat黑窗口
- 使用Blat发邮件
- C语言实现顺序表增删查改操作
- leetcode-全排列(permutation)
- 二分查找的递归和非递归实现
- 安卓activity与task
- spring知识点(个人记录)
- redigo代码分析-特殊字符