一、static
static能与属性、方法和内部类一起使用,表示静态的。类中的静态变量和静态方法都和类名一起使用,不需要创建类的对象来访问,所以static修饰的变量被称为“类变量”。
类中一个static变量只有一个内存空间,类可能会有多个实例,但共享这个static 变量。
static变量在类装载的时候就被初始化
使用static的基本原则:
- 一个类的静态方法只能访问静态属性
- 一个类的静态方法不能直接调用非静态方法
- 静态方法中不存在当前对象,所以不能使用this,super
- 静态方法不能被非静态方法覆盖
- 构造方法不允许申明为static
二、final
final能与类、属性和方法一起使用。
final的基本规则:
- final标记的类不能被继承
- final标记的方法不能被子类重写
- 如果引用类型被修饰为final(如 final int[] arr={1,2,3};)那么arr不能指向其他对象,但是可以改变对象的内容
三、内部类
在一个类的内部定义另一个类。
内部类的特点:
- 外部类的成员变量作用域是整个外部类(包括内部类),但外部类不能访问内部类的private成员
- 内部类可以直接访问外部类的成员,可以用此实现多继承
- 编译后,内部类也被编译为单独的类。