《java基础——对象的拷贝》
2022/4/7 22:19:01
本文主要是介绍《java基础——对象的拷贝》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
java基础——对象的拷贝
一、浅拷贝;
规则:
1. 浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。
2. 浅拷贝相当于两个对象共用一套实例。
格式:
类名 对象名1=new 类名(); 类名 对象名2=对象名1;
例如:
public class Student { int year,month,day; void set(int x,int y, int z) { year=x; month=y; day=z; } void Str() { System.out.println(year+"年"+month+"月"+day+"日"); } public static void main(String[] args) { Student S1=new Student(); S1.set(2022,4,7); S1.Str(); //输出“2022年4月7日”。 Student S2=S1; S2.set(2021,9,12); S1.Str(); //输出“2021年9月12日”。 S2.Str(); //输出“2021年9月12日”。 } }
二、深拷贝;
规则:
1. 深拷贝则是拷贝了源对象的所有值,所以即使源对象的值发生变化时,拷贝对象的值也不会改变。
2. 深拷贝相当于两个对象分别用两套实例。
格式:
void set(类名 新对象名) { 变量名=新对象名.变量名; } public static void main(String[] args) { 类名 对象名1=new 类名(); 类名 对象名2=new 类名(); 对象名2.set(对象名1); }
例如:
public class Student { int year,month,day; void set(int x,int y, int z) { year=x; month=y; day=z; } void Str() { System.out.println(year+"年"+month+"月"+day+"日"); } void set(Student m) { year=m.year; month=m.month; day=m.day; } public static void main(String[] args) { Student S1=new Student(); Student S2=new Student(); S1.set(2022,4,7); S1.Str(); //输出“2022年4月7日”。 S2.set(S1); S2.set(2021,9,12); S1.Str(); //输出“2022年4月7日”。 S2.Str(); //输出“2021年9月12日”。 } }
这篇关于《java基础——对象的拷贝》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南
- 2024-11-21Flutter升级教程:新手必读的升级指南
- 2024-11-21Flutter升级教程:轻松掌握Flutter版本更新