1.java增强的包装类:
数据类型 | byte | char | short | float | int | double | long | boolean |
包装类 | Byte | Character | Short | Float | Integer | Double | Long | Boolean |
所有基本数据类型包装类,都提供通过向包装类构造器中传入一个字符串参数的方式来创建包装类对象。
自动装箱拆箱:装箱就是把基本数据类型变成包装类。拆箱就是把包装类变成基本数据类型。
2.==和equals
==:数值类型只比较值,引用类型比较值和地址。
equals:值相等
3.类成员
在Java类里只能包含Field、方法、构造器、初始化块、内部类(接口、枚举)5中成员,其中static可以修饰Field、方法、初始化块、内部类。以static修饰的成员就是类成员。类成员不能访问实例成员。
类filed既可以通过类来访问,也可以通过类的对象来访问。当通过对象访问时,系统会在底层转换为通过该类访问类变量。
单例类:一个类只能创建一个实例。
创建单例类的步骤:(1)使用private关键字修饰构造器.(2)提供一个public的static的类方法调用构造器.(3)创建一个static的成员变量来保存类对象,同时判断对象是否已经创建
4.final修饰符
final修饰符可用来修饰类、变量和方法,final修饰的类、方法和变量不可改变。final修饰的变量不可再被赋值,称为常量。final修饰的类不能被继承,final修饰的方法不能被子类重写,可以重载。
final成员变量必须显式的指定初始值,随着类的初始化或对象的初始化而产生。
final局部变量既可以在定义时指定默认值,也可以在后面的代码中对final变量赋初始值,只能赋值一次。
final修饰引用类型只能保证引用类型的地址不改变,即一直指向这个对象,但这个对象可以改变。
final方法:不可被重写,Object类中的getClass方法就是final修饰的,不允许重写。
final类:不允有子类。
5.抽象类
抽象方法:只有方法声明,没有方法实现。
抽象类:包含抽象方法的类。抽象类和抽象方法用abstract修饰。
有抽象方法的类必须定义成抽象类,抽象类可以没有抽象方法。抽象类中可以定义构造方法,抽象类不能被实例化(不能new)。抽象类只能被继承,抽象方法只能由子类实现。
final和abstract不能同时使用,static和abstract不能同时使用。
抽象类的作用:模板模式的体现:编写一个抽象父类,父类提供多个子类的通用方法,并把一个或多个方法留给子类实现。
6.接口
接口是一系列方法的声明,不含普通方法、普通变量,都是抽象方法。接口描述了显示世界中:“如果你是···则必须能···”的思想。
jdk1.7之前,接口只能定义静态常量和公共的抽象方法,jdk1.8之后,接口可以定义静态方法。
接口中的常量一定是public static final ,抽象方法一定是public abstract。
接口支持多继承,一个接口可以继承多个父接口。
接口不能创建实例(不能new),但可以用于声明引用类型变量。
一个类可以实现多个接口,用implements关键字。
接口和抽象类的比较:
同:(1)都位于继承树的顶端,不能被实例化,用于被其他类实现和继承。(2)都可以包含抽象方法,实现接口或继承类的普通方法都必须实现这些抽象方法。
异:
- 接口里只能包含抽象方法,不包含已经提供实现的方法,抽象类则完全可以包含普通方法。
- 接口里不能定义静态方法,抽象类里可以定义静态方法。
- 接口里只能定义静态常量Field,不能定义普通的Field,抽象类里则都可以
- 接口里不包含构造器,抽象类里可以包含构造器,抽象类里的构造器并不是用来创建对象,而是让其子类调用这些构造器完成属于抽象类的初始化操作。
- 接口里不能包含初始化块,但抽象类则完全可以包含初始化块。
- 一个类最多只有一个父类,包括抽象类,但是一个类可以实现多个接口。
7.内部类
内部类就是定义在其他类内部的类。
作用:内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问到该类。内部类成员可以直接访问外部类的私有数据。匿名内部类适用于创建仅需要使用一次的类。
非静态内部类:因为内部类作为其外部类的成员,所以可以使用任意访问控制符:private、protected、public修饰的Field成员。
静态内部类:可以包含静态成员也可以包含非静态成员。静态成员不能访问非静态成员。外部类可以通过静态内部类的类名访问静态内部类的类成员。
局部内部类:在方法中定义的内部类
匿名内部类:匿名内部类必须继承一个父类,或实现一个接口,但最多只能继承一个父类,实现一个接口。
8.枚举类
一个类的对象是有限而且固定的。