java构造器

作用:构造器是一种特殊的方法,用于创建类的实例,构造器最大的用处就是在创建对象的时候就执行初始化,如果没有构造器,那么系统就会为属性进行默认初始化,这种初始化就是全部是0,false,null,如果我们想要改变初始化的值那么就要使用构造器。
以下是一段很经典的测试代码

public class Test{
    public String name;
    //setter,getter没写
    public int count;
    //构造器的名称必须和类名称一致
    public Test(String name, int count){
    //构造器里的this代表它进行初始化的对象
    //下面代码表示,把形参赋给了this代表的对象
    this.name = name;
    this.count = count;
    }
    public static void main(String[] args){
    //创建第一个对象
    Test t = new Test("测试", 1);
    System.out.print("t.name");
    System.out.print("t.count");
    }
}

输出就是我们想看到的 测试1。
通过上面可以看出来构造器是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象。 但是这个对象并不是完全由构造器负责创建,实际上当调用构造器的时候系统会先为该对象分配空间,并为这个对象执行默认初始化,产生对象,这些操作在构造器执行体之前,系统已经创建了一个对象只是这个对象不能被外界访问,只能在构造器中通过this来执行引用它。
当构造器的执行结束后,这个对象作为构造器的返回值被返回,通常还会赋给另一个引用类型的变量,从而让外部程序可以访问该对象。
一旦自定义了构造器,则系统不再提供默认的构造器,因此上面的Test类不能再通过new Test()代码来创建实例,因为该类不再包含无参数的构造器。
如果一个类里提供了多个构造器,就形成了构造器的重载。因此建议保留一个无参构造器,又因为构造器用于被其他方法调用,所以一般是public的,但是也存在protect或是private的情况。

public class Test{
    public String name;
    public int count;
    //无参构造器
    public Test(){
    }
    //两个参数构造器
    public Test(String name, int count){
    this.name = name;
    this.count = count;

    }
    public static void main(String[] args){
    Test t = new Test();
    System.out.println(t.name + " " + t.count);
    Test t1 = new Test("hello world", 1);
    System.out.println(t1.name + " " + t1.count);
    }
}

编译结果:
第一个什么都没有;
第二个:hello world 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值