是其余方法建立该类对象时所引用的方法,能够为新的对象赋上初始值,老是和new运算符一块儿使用在建立对象的语句中,同一个类能够同时重载多个构造方法。 注意:构造方法方法名必须和类名相同且没有返回类型也不能加voidbash
public 类 名 ( ){
//代码
}
public 类 名 ( 参 数 1 ){
//代码
}
public 类 名 ( 参 数 1 , 参 数 2 ){
//代码
}
public 类 名 ( 参 数 2 , 参 数 1){
//代码
}
复制代码
当一个类没有定义构造方法时系统会默认定义一个无参代码块,但当一个类定义了一个任意的构造方法后,系统定义的无构造方法会失效,因此通常为防止出错在定义构造方法时会先定义一个无参构造方法。测试
当一个地方建立了一个该类对象时会执行构造代码块。构造代码块没有特别的名称,没有返回值,除了static外不能加任何修饰词在前面,且每次建立对象时总会使用构造方法。网站
{
//代码
}
复制代码
而静态代码块又是一种特殊的构造代码块,除了有构造代码块的性质外,还有其独有的特色。 一个类无论建立几回对象,静态方法只会执行一次。ui
static{
//代码
}
复制代码
其实咱们能够把建立一个对象形容成去相亲。当建立一个新对象时,至关去你去相亲网上找对象。静态对象就是你去的相亲网站,父类的静态代码块是网站的名称,因此是第一个执行的。而子类的静态代码块是你要找的对象的性别,因此是第二个执行的。 父类的构造代码块是对象的名称,因此是第三个执行的。而后父类的构造方法是对象的基本信息,因此是第四个执行。最后才是子类的构造代码块和构造方法,分别为对象的家庭和详细信息。因此是先执行构造代码块后执行构造方法。spa
父类code
package test;
public class Father {
{
System.out.println("我是父类的构造代码块");
}
static{
System.out.println("我是父类的静态代码块");
}
public Father() {
System.out.println("我是父类的构造方法");
}
}
复制代码
子类cdn
package test;
public class Son extends Father {
{
System.out.println("我是子类的构造代码块");
}
static{
System.out.println("我是子类的静态代码块");
}
public Son() {
System.out.println("我是子类的构造方法");
}
}
复制代码
测试类对象
package test;
public class Test {
public static void main(String[] args) {
Son c=new Son();
}
}
复制代码
输出结果blog