java构造方法

一、构造方法

1、构造方法必须与public类名相同(若一个原文件中有多个类,那么构造方法必须与公共类同名)
2、每个类可以有一个以上的构造器(不写,默认无参构造器)
3、构造器可以有0个或1个及以上的参数
4、构造器没有返回值/返回类型
5、构造器总是伴随着new操作一起调用
注意:
1、构造方法中若使用this语句来调用类的其他构造方法,this语句必须作为第一条语句,否则编译错误(不考虑注释语句)
2、只能使用this语句来调用其他构造方法,不能通过方法名来直接调用构造方法
3、只能在构造方法中用this来调用来的其他构造方法,而不能在实例方法中用this语句来调用,否则编译错误

二、this的用法

1、实例方法中,用this指向正在执行方法的类的实例对象(static方法中是不可以使用this对象的,因为静态方法不属于类的实例对象)
2、构造方法中,用this指向同一个对象中不同参数的另一个构造器(写在第一行),只能通过this调用一次其他的构造方法

三、super的用法----用于指向父类

1、实例方法中,使用super关键字是去调用父类当中的某个方法
2、构造方法中,使用super();调用父类中的构造器

对象初始化顺序:

1、类加载之后,从上到下(从父类到子类)执行static修饰的语句
2、static语句执行完,执行main方法
3、若new对象,将从上到下执行构造代码块{}、构造方法

类的基本初始化过程:

1、static修饰的模块(static变量和static代码块-----代码顺序依次执行)
2、实例变量及非sttatic模块 -----代码顺序依次执行
3、构造函数 -----执行对应的构造函数

子类初始化顺序:

1、父类static修饰的模块(只初始化一次)
2、子类static修饰的模块 (只初始化一次)
3、父类实例变量和非static模块
4、父类对应的构造函数-----子类对应构造函数中没有显示调用时,调用的父类默认的构造函数
5、子类实例变量和非static模块
6、子类的构造函数

总结初始化顺序:

1、主类的静态成员首先初始化。 
2、 主类的超类的构造方法按照从最高到最低的顺序被调用 。 
3、主类的非静态对象(变量)初始化。 
4、调用主类的构造方法。

如果一个类中有静态对象,那么它会在非静态对象前初始化,但只初始化一次。非静态对象每次调用时都要初始化。

你可能感兴趣的:(java)