随笔录--Java复制构造函数

请解释 Java 中的概念,什么是构造函数?什么是构造函数重载?什么是复制构造函数

题目解析

1、在类别基础的面向对象程序设计中,构造函数是一个类里用于创建对象的特殊子程序。它能初始化一个新建的对象,并时常会接受参数用以设定实例变量。


2、函数重载是 Java 具有的一项特性,该特性允许创建多个具有不同实现的同名函数。对重载函数的调用会运行其适用于调用上下文的具体实现,即允许一个函数调用根据上下文执行不同的任务。Java 中构造函数重载和方法重载很相似。可以为一个类创建多个构造函数。每一个构造函数必须有它自己唯一的参数列表。


3、复制构造函数是 C++ 编程语言中的一种特别的构造函数,习惯上用来创建一个全新的对象,这个全新的对象相当于已存在对象的副本。Java 不支持像 C++ 那样的复制构造函数,Java 复制构造函数是使用相同 Java 类的另一个对象创建对象的构造函数。与C++的不同点是如果不自己写构造函数的情况下, Java 不会创建默认的复制构造函数。

知识拓展

1、Java 构造函数分为无参构造函数和有参构造函数。顾名思义,无参构造函数时不带参数的构造函数,有参构造函数是带有参数的构造函数。

2、什么时候用复制构造函数呢?当您有一个具有许多属性的复杂对象时,使用复制构造函数要简单得多。如果在类中添加了一个属性,则只需更改复制构造函数并将此新属性考虑在内,而不用更改其他构造函数。下面通过一个编程实例来加深对构造函数的理解。

代码示例

1、构造函数

public class Student {
    private String name;
    private  int age;

    //构造无参方法
    public Student(){
        System.out.println("无参构造方法");
    }
    //构造有参方法
    public Student(String name){
        this.name=name;
    }
}

2、构造函数的重载

//构造方法重载
    public Student(String name,int age){
        this.name=name;
        this.age=age;
    }

    public void show(){
        System.out.println(name+","+age);
    }

3、复制构造函数

public class Student {
    private String name;
    private int age;
    private Date startDate;

    public Student(Student student) {
        this.name = student.name;
        this.age = student.age;
        this.startDate = new Date(student.startDate.getTime());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值