一.final关键字
-
作用:用于修饰变量、方法和类
修饰变量时,该变量是不可改变的量,即常量
修饰方法时,该方法不可被子类重写,即最终方法
修饰类时,表示该类不可被子类继承,即最终类 -
final类不能被继承,保证了唯一性
-
格式
final classs finalClassName{
…
}
二.抽象类(自身不能被实例化,且专门用来做父类)
4. 抽象方法:只定义方法声明但不包含方法体
抽象类:包含抽象方法的类
一个抽象类中可以存在一个或多个抽象方法,抽象类中也可以不含有抽象方法
5. 抽象类格式
[访问控制符] abstract class 抽象类名{
属性;
访问控制符 返回类型 方法名 ([参数列表]){
//方法语句;
[return 返回值]
}
访问控制符 abstract 返回类型 方法名 ([参数列表]);
}
- 抽象类只表示一种抽象的概念,是描述其子类所共有的属性和方法,不能被实例化为一个对象,即不能用new为抽象类对象分配空间。
Java中的所有对象都通过类来描绘,但并非所有的类都用来描绘对象abstract关键字不能修饰属性与构造方法。 - 子类可以通过Super关键字调用抽象类的构造方法,子类构造方法隐含Super()
三.内部类
- 定义:在一个类体之间再定义一个类,外面的类称为“外部类”,内部的类称为“内部类”
- 内部类可以访问外部类的私有成员属性
语法:外部类.内部类 对象名=new 外部类对象.new 内部类构造方法
四.单例模式
- 构造方法私有;用一个私有的静态变量引用实例;提供一个共有的静态方法获取实例
- object类
①.处于Java开发环境的类层次的树根部,处于Java类层最高层的一个类,是所有类的超类
②.其他所有类都直接或间接的成为他的子类
③.定义了一些所有对象的最基本的状态和行为,包括与同类对象相比较,转化为字符等
五.接口
-
定义接口
Java只支持单一继承,不支持多重继承。但Java允许一个类实现多个接口,使程序更灵活、易扩展 -
语法
[访问符] interface 接口名 [extends 父接口1 父接口2…]{
//接口体
} -
接口的继承
-
面向接口编程
六.字符串类
Java提供了String、StringBuffer、StringBuilder三个类来封装字符串
- String创建的字符串是不可变的
- StringBuffer创建的字符串是可变的,当使用StringBuffer创建一个字符串后,字符串内容可通过append()、insert()、setCharAt()等方法改变,而字符串变量所引用的地址一直不变
- StringBuilder也是创建一个可变的字符串,但StringBuffer是线程安全的,而StringBuilder没有实现线程安全,因此性能较好