clone()与New的区别
2017-02-18 17:45
585 查看
首先要一个类有clone()复制方法,必须实现一个接口Cloneable
class CloneClass implements Cloneable{
public int aInt;
public Object clone(){
CloneClass o = null;
try{
o = (CloneClass)super.clone();
}catch(CloneNotSupportedException e){
e.printStackTrace();
}
return o;
}
}
下面例子说明
Class A implements Cloenable{
public int i=1;
public Object clone(){
o=(CloneClass)super.clone():
try{
}catch(CloneNotException e){
e.printStackTrack();
}
}
}
Class B{
public int i=1;
}
如果你想要一个对象的复本,但还需要它实时的值就用clone,用new 生成的实例 其字段 不会变 i=1;
A a =new A();
a.i=2;
B b=new B()
b.i=2;
如果给A 和B各创建一个复本a2 b2
A a2=a.clone();
B b2=new B();
a2的 i=2 ;b2 的i=1; 这就是区别
class CloneClass implements Cloneable{
public int aInt;
public Object clone(){
CloneClass o = null;
try{
o = (CloneClass)super.clone();
}catch(CloneNotSupportedException e){
e.printStackTrace();
}
return o;
}
}
下面例子说明
Class A implements Cloenable{
public int i=1;
public Object clone(){
o=(CloneClass)super.clone():
try{
}catch(CloneNotException e){
e.printStackTrack();
}
}
}
Class B{
public int i=1;
}
如果你想要一个对象的复本,但还需要它实时的值就用clone,用new 生成的实例 其字段 不会变 i=1;
A a =new A();
a.i=2;
B b=new B()
b.i=2;
如果给A 和B各创建一个复本a2 b2
A a2=a.clone();
B b2=new B();
a2的 i=2 ;b2 的i=1; 这就是区别
相关文章推荐
- Prototype中的shallow clone 与deep clone 与new 一个实例的区别
- 【clone()和new()区别】
- new和override区别
- (旧文重贴)真是惭愧,翻译代码的过程中,才明白了new和override的区别。
- Java中shallow clone 与deep Clone的区别
- java关键字new和newInstance方法区别
- new和using的区别
- C# 的 new 和 override 区别
- CreateSpecificCulture('zh-cn')和new CultureInfo('zh-cn')的区别
- (精通C#编程)实例理解overwrite virtual new三者的区别
- 转 c#中new和override的区别
- String a="1"; String a=new String(); String a=new String("1")区别
- 关键字new和newInstance方法区别
- 这篇文章不错,介绍了virtual abstract override new 的使用区别
- malloc/free 和 new/delete的区别
- http get 与 post 的区别(zz)[New]
- String a = "sss";和String a = new String("sss");有什么区别吗?
- 关键字new和newInstance方法区别
- new 和 override 的区别
- 请问NEW和USING的区别?