通常,复制构造函数是通过使用先前已创建的相同类的对象初始化对象来创建对象的构造函数。

Java支持复制构造函数,但与C语言不同,Java没有提供您需要自己定义的显式复制构造函数。

写一个拷贝构造函数

通常,为了初始化类的实例变量的值(一种方式),我们创建一个参数化的构造函数,接受所有实例变量的值,并使用给定的值对其进行初始化。int name;

int age;

public Student(String name, int age){

this.name = name;

this.age = age;

}

但是,在复制构造函数中,接受当前类的对象,并使用获取的对象中的值初始化实例变量的值。public Student(Student std){

this.name = std.name;

this.age = std.age;

}

然后,如果您创建了一个对象并通过传递对象来调用副本构造函数,则将获得您之前创建的对象的副本。Student std = new Student("nameValue", ageValue);

Student copyOfStd = new Student(std);

示例

以下是演示Java中的副本构造函数的示例。import java.util.Scanner;

public class Student {

private String name;

private int age;

public Student(String name, int age){

this.name = name;

this.age = age;

}

public Student(Student std){

this.name = std.name;

this.age = std.age;

}

public void displayData(){

System.out.println("Name : "+this.name);

System.out.println("Age : "+this.age);

}

public static void main(String[] args) {

Scanner sc =new Scanner(System.in);

System.out.println("Enter your name ");

String name = sc.next();

System.out.println("Enter your age ");

int age = sc.nextInt();

Student std = new Student(name, age);

System.out.println("Contents of the original object");

std.displayData();

System.out.println("Contents of the copied object");

Student copyOfStd = new Student(std);

copyOfStd.displayData();

}

}

输出结果Enter your name

Krishna

Enter your age

20

Contents of the original object

Name : Krishna

Age : 20

Contents of the copied object

Name : Krishna

Age : 20

java的复制构造函数_什么是Java中的复制构造函数?相关推荐

  1. java 默认参数 实例化_如何使用Kotlin中的默认构造函数参数值实例化对象?

    使用在科特林: 在构造函数中的默认值仅服用时该构造的特定参数不传递到它在所有.那意味着它是为了实现各种组合的参数化构造函数. 例如, data class Bird (val name: String ...

  2. 什么是java构造函数_什么是java构造函数

    构造函数是面向对象中的一员,构造函数可以叫做构造器,它的函数名与类名相同,不用定义返回值类型,也没有具体的返回值.构造函数是在构建创造时对象时调用函数,作用是可以给对象进行初始化,创建对象都必须要通过 ...

  3. java加载机制_详解Java类加载机制

    一:ClassLoader 从JVM结构图中可以看到,类加载器的作用是将Java类文件加载到Java虚拟机. HotSpot JVM结构,图片来自Java Garbage Collection Bas ...

  4. java使用集合存储过程_详解java调用存储过程并封装成map

    详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map           本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...

  5. java获取机器号_(转)JAVA获得机器码的实现

    http://yangshangchuan.iteye.com/blog/2012401 首先,定义了一个统一的接口,以支持不同操作系统不同实现的透明切换: Java代码  收藏代码 /** *生成机 ...

  6. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  7. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  8. java占位符打印_什么是 Java 构造器?

    构造器是编程的强大组件.使用它们来释放 Java 的全部潜力. -- Seth Kenlon(作者) 在开源.跨平台编程领域,Java 无疑(?)是无可争议的重量级语言.尽管有许多 伟大的跨平台 框架 ...

  9. 新手学java 学哪方面_初学者学Java应从哪些方面学习?

    原标题:初学者学Java应从哪些方面学习? Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.那么,初学者学Java应从哪些方面学 ...

最新文章

  1. Django博客系统(短信验证码)
  2. python打完代码怎么运行-Python的代码是如何去进行运行的?
  3. NYOJ 636 世界末日
  4. 微信程序开发系列教程(一)开发环境搭建
  5. 电脑更新系统时间显示rpc服务器不可用,win7系统时间同步出错RPC服务器不可用的解决方法...
  6. html静态页面作业 我的家乡网站设计——我的家乡-杭州(7页) HTML+CSS+JavaScript 大学生家乡网页作品 老家网页设计作业模板 学生网页制作源代码下载
  7. linux文件目录加密,适用于Linux的10款最佳文件和磁盘加密工具
  8. Kd树实现K近邻算法
  9. 2021-01-03
  10. rtthread学习之(3)——STM32系列BSP外设驱动使用教程
  11. 基于表情分析的智能语音陪伴机器人
  12. 题目0073-双十一
  13. ionic platform add android环境搭建之难产【i1】【小白-2016.11.5】
  14. java对象实例化内存布局与访问定位
  15. SOP SO SOIC TSSOP SSOP 封装直观比较图 [转载]
  16. STM32使用虚拟示波器
  17. hexo笔记十一:next主题添加留言页面
  18. WCZ-1 质子磁力仪操作步骤
  19. blos硬盘启动台式计算机,台式机加硬盘开机问题解决-戴尔台式机bios设置
  20. Unity中人物描边的“近大远小”优化

热门文章

  1. 过滤器,绑定事件,动画
  2. 关于发布DIPS的MVC项目的IIS 7.0环境配置的方法
  3. 创建oracle 数据库表空间,角色,用户的sql语句
  4. linux 星号 通配符,如何在bash中转义通配符/星号字符?
  5. uuid hashcode_Java UUID hashCode()方法与示例
  6. linux查看磁盘io带宽,[Linux] 磁盘IO性能查看和优化以及iostat命令
  7. r语言安装ipsolve_R语言矩阵操作之矩阵运算
  8. excel保存快捷键_干货 | 快速提高工作效率的电脑快捷键!
  9. jsp管理系统页面模板_jsp+ssh(spring+struts2+hibernate)+mysql实现的高校实验室管理系统...
  10. oracle怎么设置出蓝色边,Oracle 数据库入门之———————-,多行函数-蓝色留心...