java构造器

1、什么是构造器

构造器又叫构造方法,构造函数。它在程序中无处不在,当new一个对象时就会调用构造器,其格式如下:

【修饰符,例如public】 类名(参数列表,可以没参数){

//不能有return

}

例如:
public class A  {

   public A  {

//默认的无参构造器}

}

2、默认构造器

当没有显性定义构造器时,则会默认调用隐形的无参构造器。这就是为什么你没有定义构造器,却可以使用new新建对象。若自定义了构造器,则会覆盖默认的无参构造器。

3、构造器的特点: 

  • 构造器可以重载。一个对象中是可以支持同时定义多个构造器,通过不同的参数列表来实现重载。经常看到代码中new一个对象时,有时传入参数,有时又可以不用传。比如:new People()跟new People("张三"),这里就是重载了。
  • 构造器可继承。子类构造器会默认调用父类无参构造器,如果父类没有无参构造器,则必须在子类构造器的第一行通过 super关键字指定调用父类的哪个构造器。final类是不允许被继承的,编译器会报错。很好理解,由于final修饰符指的是不允许被修改,而继承中,子类是可以修改父类的,这里就产生冲突了,所以final类是不允许被继承的。

4、构造器、静态代码块、构造代码块的执行顺序

  • 无继承的情况下的执行顺序
    静态代码块:只在程序启动后执行一次,优先级最高
    构造代码块(匿名代码块):任何一个构造器被调用的时候,都会先执行构造代码块,优先级低于静态代码块
    构造器:优先级低于构造代码块
    总结一下优先级:静态代码块 > 构造代码块 > 构造器

实例:

package _static;

public class _static {

    {
        System.out.println("匿名(构造)代码块");
    }

    static{
        System.out.println("静态代码块");
    }
   //构造器  (可以不写,默认存在)
   public _static(){
       System.out.println("默认构造器代码块");
   }

    public _static(String a){
        System.out.println("构造器有参代码块");
    }


}
import _static._static;

public class Application {
    public static void main(String[] args)
    {
        _static s1 = new _static();
        System.out.println("-----------------------");
        _static s2 = new _static("a");
    }
}

运行结果:

静态代码块
匿名(构造)代码块
默认构造器代码块
-----------------------
匿名(构造)代码块
构造器有参代码块

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值