一、初始化块:
二、对象的初始化过程:
- 设置实例变量的值为缺省的初始值
- 调用对象的构造器 ,绑定构造器参数。
- 如果构造器中有this()调用,则根据this()调用的参数调用相应的重载构造器,然后,转到步骤5;否则转到步骤4。
- 除java.lang.Object类外,调用父类的中的初始化块初始化父类的属性,然后调用父类构造器,如果在构造器中有super()调用,则根据super()中的参数调用父类中相应的构造器。
- 使用初始化程序和初始化块初始化成员。
- 执行构造器方法体中其他语句。
三、封装类:
简单数据类型
|
封装类
|
boolean
|
Boolean
|
byte
|
Byte
|
int
|
Integer
|
long
|
Long
|
char
|
Character
|
float
|
Float
|
double
|
Double
|
这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,
编译器也可以把一个对象拆箱为内置类型。Number类属于java.lang包。
包装类遇到内置数据类型
public class Test{
public static void main(String args[]){
Integer x = 5; // boxes int to an Integer object
//上边的的语句相当于 Integer x =
x = x + 10; // unboxes the Integer to a int
System.out.println(x);
}
}
四、static关键字 :
五、final: --声明final方法的主要目的是防止该方法的内容被修改。
Final变量能被显式地初始化并且只能初始化一次。被声明为final的对象的引用不能指向不同的对象。
但是final对象里的数据可以被改变。也就是说final对象的引用不能改变,但是里面的值可以改变。
Final修饰符通常和static修饰符一起使用来创建类常量。
六、抽象类: --abstract
- 抽象方法:类中没实现的方法,会有abstract修饰
- 抽象类:有abstract修饰的类,叫抽象类
抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。
抽象方法不能被声明成final和strict。
任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
抽象方法的声明以分号结尾,例如:public abstract sample();
七、接口: --implements,interface
八、多态:
父类引用子类对象。
animal是父类,cat和dog是子类,子类中有不一样名字的方法。则多态的体现是
Animal animal = new Cat();
animal.weizhi();
animal = new Dog();
animal.weizhi();
父类调用子类中特殊的方法是:
((Dog)animal).dongzuo();
static
Final变量:
Final变量能被显式地初始化并且只能初始化一次。被声明为final的对象的引用不能指向不同的对象。但是final对象里的数据可以被改变。也就是说final对象的引用不能改变,但是里面的值可以改变。
Final修饰符通常和static修饰符一起使用来创建类常量。
Abstract抽象类
抽象类:
抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
抽象类可以包含抽象方法和非抽象方法。