发布于 2016-07-04 10:24:49 | 132 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Java设计模式,程序狗速度看过来!

Java程序设计语言

java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。


Java Clone(类的复制)实例代码,需要的朋友可以参考一下

自己实现了一遍:


public class A implements Cloneable {
public String str[];

A() {
str = new String[2];
}

public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
o.str = new String[2];
return o;
}
}

void run() throws Exception {
A a1 = new A(), a2 = new A();
a1.str[0] = "a"; a1.str[1] = "b";
a2 = (A) a1.clone();
a2.str[0] = "c"; a2.str[1] = "d";
System.out.println(a1.str[0] + " " + a2.str[0]);
}

结果:

a c

1.


public class A implements Cloneable { 
 public String name; 

 public Object clone() {
  A o = null;
  try {
   o = (A) super.clone();
  } catch (CloneNotSupportedException e) {
   e.printStackTrace();
  }
  return o;
 }
}

2.


public class A implements Cloneable { 
 public String name[]; 

 public A(){ 
  name=new String[2]; 
 } 

 public Object clone() {
  A o = null;
  try {
   o = (A) super.clone();
  } catch (CloneNotSupportedException e) {
   e.printStackTrace();
  }
  return o;
 }
}

3.


public class A implements Cloneable {    
     public String name[];    
     public Vector<B> claB;    

     public A(){    
         name=new String[2];    
         claB=new Vector<B>();    
     }    

     public Object clone() {    
         A o = null;    
         try {    
             o = (A) super.clone();    
         } catch (CloneNotSupportedException e) {    
             e.printStackTrace();    
         }    
         o.name=new String[2];//深度clone    
         o.claB=new Vector<B>();//将clone进行到底    
         for(int i=0;i<claB.size();i++){    
             B temp=(B)claB.get(i).clone();//当然Class B也要实现相应clone方法 
             o.claB.add(temp);    
         }    
         return o;    
     }    
 } 



最新网友评论  共有(0)条评论 发布评论 返回顶部
推荐阅读
最新资讯

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务