1.Clone()方法产生一个object,使用方法后必须产生的object赋值。
Vector v2 = (Vector)v.clone();
2.Clone()方法在object中是保护类型方法,如果自己创建的类需要使用Clone()方法的话需要自己重新写一个,并且继承Cloneable接口。
package tweleve; import java.util.*; class MyObject implements Cloneable { int i; MyObject(int ii) { i = ii; } public Object clone() { Object object = null; try { object = super.clone(); } catch (CloneNotSupportedException e) { System.out.println("MyObject can‘t clone"); } return object; } public String toString() { return Integer.toString(i); } } public class LocalCopy { static MyObject g(MyObject v) { v.i++; return v; } static MyObject f(MyObject v) { v = (MyObject) v.clone(); v.i++; return v; } public static void main(String[] args) { MyObject aMyObject = new MyObject(11); MyObject bMyObject = g(aMyObject); if (aMyObject == bMyObject) System.out.println("a==b"); else System.out.println("a!=b"); System.out.println("a=" + aMyObject); System.out.println("b=" + bMyObject); MyObject cMyObject = new MyObject(31); MyObject dMyObject = f(cMyObject); if (cMyObject == dMyObject) System.out.println("c==d"); else System.out.println("c!=d"); System.out.println("c=" + cMyObject); System.out.println("d=" + dMyObject); } }
3.如果希望一个类能够克隆那么需要有下列步骤:(1)实现Cloneable接口
(2)覆盖Clone()方法
(3)在自己的Clone()方法中调用super.clone()
(4)在自己的clone()中捕获违例
4.String类中所有能修改String的方法其实都创建和返回了一个新的String类,原来的String类是没有改变的,包括+和+=,StringBuffer比String操作字符串时更有效。
package tweleve; import java.sql.Ref; import org.omg.CORBA.SystemException; public class Stringer { static String upcase(String s){ return s.toUpperCase(); } public static void main(String[] args){ String qString=new String("howdy"); System.out.println(qString); String qq=upcase(qString); System.out.println(qq); System.out.println(qString); } }
时间: 2024-10-11 05:13:26