zoukankan      html  css  js  c++  java
  • Java深拷贝与浅拷贝

         广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,疯狂软件年终钜惠,报名java就业班,免费赠送基础班,名额有限,本月火热报名中,欢迎有志之士电话或者QQ咨询。

      深拷贝与浅拷贝主要的不同是对于引用变量的拷贝,浅拷贝的引用变量不仅仅是拷贝一个引用(地址).引用变量的成员也一样深拷贝。废话少说下面是两个拷贝的例子

      1.浅拷贝

      1 package com.LightCopy;

      2

      3 public class Professor implements Cloneable{

      4 private String name;

      5 private int age;

      6

      7 public String getName() {

      8 return name;

      9 }

      10

      11 public void setName(String name) {

      12 this.name = name;

      13 }

      14

      15 public int getAge() {

      16 return age;

      17 }

      18

      19 public void setAge(int age) {

      20 this.age = age;

      21 }

      22

      23 public Professor(String name, int age) {

      24 this.name = name;

      25 this.age = age;

      26 }

      27

      28 @Override

      29 public Object clone() {

      30 Professor o=null;

      31 try

      32 {

      33 o=(Professor) super.clone();

      34 }

      35 catch(CloneNotSupportedException e)

      36 {

      37 e.printStackTrace();

      38 }

      39

      40 return o;

      41 }

      42

      43 }

      View Code

      2.深拷贝

      1 package com.DeepCopy;

      2

      3 import com.LightCopy.Professor;

      4

      5 public class Student implements Cloneable {

      6 private String name;

      7 private int age;

      8 private Professor pro;

      9 public Professor getPro() {

      10 return pro;

      11 }

      12

      13 public void setPro(Professor pro) {

      14 this.pro = pro;

      15 }

      16

      17 public Student(String name, int age,Professor pro) {

      18 this.name = name;

      19 this.age = age;

      20 this.pro=pro;

      21 }

      22

      23 public String getName() {

      24 return name;

      25 }

      26

      27 public void setName(String name) {

      28 this.name = name;

      29 }

      30

      31 public int getAge() {

      32 return age;

      33 }

      34

      35 public void setAge(int age) {

      36 this.age = age;

      37 }

      38

      39 @Override

      40 public Object clone() {

      41 Student obj = null;

      42 try {

      43 obj = (Student) super.clone();

      44 } catch (CloneNotSupportedException ex) {

      45 ex.printStackTrace();

      46 }

      47 obj.pro=(Professor)pro.clone();

      48 return obj;

      49 }

      50 }

      疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。技术知识沉淀深厚的老师,让你感受Java的魅力,激发你对于编程的热爱,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,成为真正的技术高手;通过大量全真企业项目疯狂训练,迅速积累项目经验。让你成为技能型的现代化高端人才,迅速获得高薪就业!时间不等人,赶紧联系我们吧!疯狂java培训中心地址:广州天河区车陂沣宏大厦3楼。

      疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。疯狂软件开设了java课程,ios课程,android课程,为你提供一个学习java技能的好机会,疯狂软件特大优惠活动,加疯狂软件微信号(疯狂软件),抢优惠,优惠100元+赠送iOS教材一本 详情请看疯狂java培训官网。IT从业着仍是社会所需要的高端人才,广州疯狂软件之力于培养企业所需要的中高端IT人才,让你成为备受企业青睐的人才。

  • 相关阅读:
    微软外服 AlI In One
    js 循环多次和循环一次的时间的性能对比 All In One
    vue inject All In One
    Excel 表格数据倒置 All In One
    SVG tickets All In One
    OH MY ZSH All In One
    js array for loop performance compare All In One
    mac terminal show You have new mail All In one
    新闻视频 26 制作母版页
    转自牛腩 母版页和相对路径
  • 原文地址:https://www.cnblogs.com/gojava/p/3503414.html
Copyright © 2011-2022 走看看