java的三大特性
封装:将内部数据隐藏起来,只能通过对外暴露的接口进行访问。好处:可读可维护。
继承:类从其他类继承状态和行为(state and behavior)。每个类允许有一个超类(父类),超类可有多个子类。子类可以集中扩展自己的特性。
多态:重写,子类重写父类方法。重载,一个类里有多个相同名字、不同参数的方法。
什么时候用内嵌类、本地类、匿名类和Lambda表达式
摘自
内嵌类:当不需要访问本地变量和方法参数,还想适用范围广一点时。
当需要访问内嵌类实例的非公共变量和方法时,声明为非静态内嵌类,否则声明为静态static的。
本地类:当需要创建一个类的多个实例,访问其构造函数或引入新的命名类型(例如,稍后需要调用其他方法)时。
匿名类:当需要声明字段和其他方法时。
Labmbda表达式:传给其他代码封装的单一行为单元时,或者只需要一个有一个功能接口的简单实例(比如不需要构造方法、声明变量和其他方法)。