首页 > 代码库 > Java学习笔记-12.传递和返回对象

Java学习笔记-12.传递和返回对象

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

Java学习笔记-12.传递和返回对象