所谓内部类(Inter Class),顾名思义,就是将一个类定义在另一个类的内部。内部的类称为内部类
public class Outer{
class Inner{
}
}
内部类的主要特点:
1、内部类可以很好的实现隐藏,可以使用protected private修饰符
2、内部类可以直接访问外部类的所有成员,包括私有的成员
3、外部类不能直接访问内部类的成员,必须首先建立内部类的对象才能访问
成员内部类及应用
1、成员内部类属于外部类的实例成员,成员内部类可以有public、private、protected、default权限修饰符。在成员内部类中访问外部类的成员方法和属性,要使用“外部类名.this.成员方法”和“外部类名.this.成员属性”的形式
2、创建成员内部类的实例使用“外部类名.内部类名 实例 = 外部类实例名.new 内部类构造方法(参数)的形式”
成员内部类有以下限制:
1、成员内部类不能与外部类重名
2、不能在成员内部类定义static属性,方法和类(static final形式常量定义除外)因为一个成员内部类实例必然与一个外部类实例关联,static成员完全可以移到其外部类中去。
final:
final可以修饰:属性,方法,类,局部变量(方法中的变量)
final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。
final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。
final修饰的属性表明是一个常数(创建后不能被修改)。
final修饰的方法表示该方法在子类中不能被重写,final修饰的类表示该类不能被继承
static final形式的常量:
static final:
static修饰的属性强调它们只有一个,final修饰的属性表明是一个常数(创建后不能被修改)。static final修饰的属性表示一旦给值,就不可修改,并且可以通过类名访问。
static final也可以修饰方法,表示该方法不能重写,可以在不new对象的情况下调用