欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

clone克隆

程序员文章站 2023-12-28 17:36:34
...
java 代码
  1. public class Main implements Cloneable{   
  2.     String msg;   
  3.     public Main(String msg){   
  4.         this.msg = msg;    
  5.         System.out.println("init");   
  6.     }   
  7.     public Object clone()throws CloneNotSupportedException{   
  8.         return super.clone();   
  9.     }   
  10.     public boolean equals(Object obj){   
  11.         if(obj==this)return true;   
  12.         if(!(obj instanceof Main))return false;   
  13.         final Main temp  = (Main)obj;   
  14.         if(this.msg.equals(temp.msg))   
  15.             return true;   
  16.         else    
  17.             return false;   
  18.            
  19.     }   
  20.     public static void main(String[] args)throws Exception{   
  21.         Main main = new Main("sanyun");   
  22.         Main clone = (Main)main.clone();   
  23.         System.out.println(main==clone);   
  24.         System.out.println(main.equals(clone));   
  25.         System.out.println(clone.msg);   
  26.     }   
  27. }  

需要注意的几点:

1.必须实现Cloneable借口,否则会抛出CloneNotSupportException

2.Object的clone方法原形是protected,覆写时需要扩大访问权限public

3.clone方法并不会调用构造函数。

4Object colen方法的实现中会创建一个复制的对象,这个对象于原来的对象具有相同的值,但具有不同的内存地址

上一篇:

下一篇: