Java复制构造函数
来源:互联网 发布:excel两个表格数据对比 编辑:程序博客网 时间:2024/05/16 02:59
//Example: //1.Clock类: public class Clock { private int hour; private int minute; private int second; public Clock(){ setTime(0,0,0); } public Clock(int h,int m,int s){ setTime(h,m,s); } /* 拷贝构造函数 */ public Clock(Clock clock){ ///对象做参数 this.hour=clock.hour; this.minute=clock.minute; this.second=clock.second; } public int getHour() { return hour; } public int getMinute() { return minute; } public int getSecond() { return second; } public void setTime(int h,int m,int s){ if(h>=0 && h<24) this.hour=h; else this.hour=0; if(m>=0 && m<60) this.minute=m; else this.minute=0; if(s>=0 && s<60) this.second=s; else this.second=0; } public void printTime(){ if(this.hour<10) System.out.print("0"); System.out.print(this.hour+":"); if(this.minute<10) System.out.print("0"); System.out.print(this.minute+":"); if(this.second<10) System.out.print("0"); System.out.println(this.second); } } //2.main函数: public class Program { public static void main(String[] args) { Clock c1=new Clock(6,43,23); Clock c2=new Clock(c1);//调用拷贝构造函数 c1.printTime(); c2.printTime(); } } //3.运行结果: 06:43:23 06:43:23
----------------------------------------------------------------------------------
构造函数只能进行浅copy,就是只能复制简单类型如int,float数据到另一副本。
如果对象中包含了对象等复杂类型,浅拷贝对象其实是对象的引用,而不是重新生成一个新副本。这时,如果对一个实例的内部类类型修改,其他实例的内部类类型也会被修改。这时就需要copy构造函数来进行深复制(也就是使对象中包含的类等复杂类型使用值赋值,而不是引用赋值)
----------------------------------------------------------------------------------
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
拷贝构造方法就是用一个已经实例化的对象来new另一个对象
给个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public
class
Test {
private
int
hour;
private
int
minute;
private
int
second;
// 构造方法
public
Test() {
}
// 拷贝构造方法
public
Test(Test t) {
super
();
this
.hour = t.hour;
this
.minute = t.minute;
this
.second = t.second;
}
}
0 0
- Java复制构造函数
- 构造函数 复制构造函数
- 深复制-复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 关于复制构造函数
- 学习复制构造函数
- 复制构造函数
- 复制构造函数
- 复制构造函数
- 复制构造函数
- 复制构造函数总结
- 复制构造函数
- 复制构造函数
- C++复制构造函数
- 复制构造函数实例
- 面向对象与面向过程的区别
- [转]VS2013如何添加LIb库及头文件的步骤
- nyoj860 又见01背包
- 对话框输入输出
- 一般图的匹配题集
- Java复制构造函数
- Two Sum(初谈双指针)
- C++获取某一任意字符串每一个字符连续出现次数并打印在控制台上
- LeetCode *** 20. Valid Parentheses
- 快速排序(java实现)
- 第七周 项目2 友元类
- WebView.HitTestResult
- Dagger2 简单教程,一步一步教你怎么写!
- NAT、用iptables配置NAT