读《Java编程思想》总结------第十章(内部类)

内部类:内部类可以访问外部类中的所有成员。

使用方式:外部类名.内部类名 对象名 = new 外部类对象().内部类对象()。

注意事项:局部内部类中,如果希望访问所在方法的局部变量,那么这个变量必须是有效final的。

备注:从java8开始,只要局部变量事实不变,那么final关键字可以省略。

原因:new出来的对象在堆内存中,而局部变量在栈内存中,局部变量随着方法的出栈而结束,而对象会一直存在,直到垃圾回收机制回收掉,所以可能导致局部变量不存在了而对象还在,这就需要使用final来保证局部变量的使用。

 

如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this,即外部类名.this

在拥有外部类对象之前是不可能创建内部类对象的。

当将内部类向上转型成其基类,尤其是转型成一个接口时候,内部类就有了用武之地。

如果不需要内部类对象与其外围类对象之间有联系,那么可以将内部类声明为static,这个通常称为嵌套类。

接口解决了部分问题,而内部类有效的实现了“多重继承”,如果拥有的是抽象类或具体的类,而不是接口,那么就只能使用内部类才能实现多重继承。

模板方法设计模式,包含算法的基本结构,并且会调用一个或多个可覆盖的方法,以完成算法的动作。设计模式总是将变化的事物与保持不变的事物分离开,在这个模式中,模板方法是不变的事物,而可覆盖的方法就是变化的事物。

 

 

 

猜你喜欢

转载自blog.csdn.net/keyto1/article/details/90182737