Java Clone(类的复制)实例代码_java

自己实现了一遍:

复制代码 代码如下:

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;   
     }   
 }

时间: 2024-09-26 06:53:32

Java Clone(类的复制)实例代码_java的相关文章

Java实现FTP服务器功能实例代码_java

FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Download).FTP是实时联机服务,在使用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以进行文件搜索和文件传送等有关操作,如改变当前工作目录.列文件目录.设置传输参数及传送文件等.使用FTP可以传送所有类型的文件,如文本文件.二进制可执

java哈夫曼树实例代码_java

本文实例为大家分享了哈夫曼树java代码,供大家参考,具体内容如下 package boom; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Queue; class Node<T> implements Comparable<Node<T>>{ private T

java 实现约瑟夫环的实例代码_java

复制代码 代码如下: import java.io.BufferedInputStream;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Josephus {    private static class Node{        int No;        Node next;        public Node(int No){            this

Java实现邮箱找回密码实例代码_java

通过邮件找回密码功能的实现 1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人的思路:发送邮件→请求邮件里的URL→验证url→{验证成功修改密码,不成功跳转到失败页面} 重点就是如何生成这个url和如何解析这个url. 需要注意的是一个url只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url 邮箱  3.加密能防

Java批量修改文件名的实例代码_java

复制代码 代码如下: import java.io.*; import java.util.*;public class Test {     public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new FileReader("output1.txt"));        List<String> newName =

Java自动解压文件实例代码_java

复制代码 代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public cl

java实现MD5加密算法的实例代码_java

复制代码 代码如下: package other; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/* * MD5 算法*/public class MD5 {     // 全局数组    private final static String[] strDigits = { "0", "1", "2", "3"

Java使用JDBC连接Oracle_MSSQL实例代码_java

一.Statement 复制代码 代码如下: import java.sql.*; public class TestJDBC {  public static void main(String[] args) {  Connection oracle_conn = null;  Statement oracle_stmt = null;  ResultSet oracle_rs = null;   Connection mssql_conn = null;  Statement mssql_s

JAVA 获取系统当前时间实例代码_java

本文章向大家讲解java中时间的获取和格式化,  一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowString { public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式