2017.11.2关于构造器重载的理解

1.构造器:

作用:

当创建一个对象的时候系统会初始化对象属性,如果没有给对象属性赋值那么它就是默认值,构造器的作用就是初始化(就是赋值)这个对象属性的值,这就是的构造器作用。

构造器主要用于被其他方法调用,用以返回该类的实例,因而通常把构造器设置成public访问权限,从而允许系统中任何位置的类来创建该类的对象。除非不想让其他类创建该类的对象就不要用public。

·如果你没有提供构造器,系统默认带有一个不带参数的构造器,但是当你显示的创建了一个构造器后系统则不提供默认的构造器了,你可以自己在显示的添加一个不带参数的构造器。

示例:
public class Qing {
    //变量
    public String name;
    public int count;

    //创建一个构造器
    public Qing(String name, int count){
        this.name = name;
        this.count =count;
    }
}
public class Qing1 {
    public static void main(String[] args){
        Qing t = new Qing("陶晓聪",19);
        //第一次穿值给构造器
        System.out.println(t.name);
        System.out.println(t.count);

        Qing t1 = new Qing("罗潇",29);
        //第二次传值给构造器
        System.out.println(t1.name);
        System.out.println(t1.count);
    }
}

2.构造器重载
构造器名字相同都跟类名一样,参数(参数个数或类型)不相同我们就说这是构造器重载。当你要多次初始化不同数量的对象属性时候可以使用构造器重载,因为这样给对象属性赋值方便些。

示例:
public class Niao {
    public String name;
    public int count;

    public Niao(String name){
        this.name = name;
        this.count = count; 
    }

    public Niao(String name,int count) {
        this.name = name;
        this.count = count;
    }
}
public class Niao1 {
    public static void main(String[] args){
        Niao t = new Niao("陶晓聪");
        System.out.println(t.name);
        System.out.println(t.count);

        //构造器重载
        Niao t1 = new Niao("罗潇",29);
        System.out.println(t1.name);
        System.out.println(t1.count);

        Niao t2 = new Niao("王涛");
        System.out.println(t2.name);
        System.out.println(t2.count);
    }
}

3.构造器B代码,包含构造器A的所有代码,用this调用相应的构造器的初始化代码。
语法: this(参数列表)
作用:

使用this调用另一个重载的构造器只能在构造器中使用,且必须作为构造器执行体的第一条语句。使用this调用重载的构造器时,系统根据this括号中的实际参数调用与之对应的形式参数列表的重载构造器。首先这样可以少些代码,其次当一个构造器中的代码修改后,不需要修改其他重载构造器中的代码。

示例
public class Bei {
    public String name;
    public int age;
    public double weight;

    public Bei(String name){
        this.name = name;
    }

    public Bei(String name,int age){
        this(name);//复用
        this.age = age;
    }

    public Bei(String name, int age, double weight){
        this(name,age);
        this.weight = weight;
    }
}
public class Bei1 {
    public static void main(String[] args) {
        Bei t = new Bei("陶晓聪");
        System.out.println(t.name);
        System.out.println(t.age);
        System.out.println(t.weight);
        System.out.println("");

        Bei t1 = new Bei("陶晓聪",19);
        System.out.println(t1.name);
        System.out.println(t1.age);
        System.out.println(t1.weight);
        System.out.println("");

        Bei t2 = new Bei("陶晓聪");
        t2.age = 19;
        t2.weight = 200;
        System.out.println(t2.name + "今年" +t2.age +"岁" + "是个" + t2.weight + "斤" + "的胖子!");      
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值