日期:2014-05-20 浏览次数:20899 次
import javax.swing.*;
import java.util.*;
import java.math.*;
import java.util.Date;
public class CloneTest extends Object
{
    public static void main(String[] args)
    {
        Employee e1 = new Employee();
        Employee e2 = e1;
        e1.SetName("ff");
        e1.SetName("gg");
        System.out.println( e2.GetName() );
    }
}
class Employee implements Cloneable
{
    private String name;
    public void SetName(String a)
    {
        this.name = a;
    }
    public String GetName()
    {
        return this.name;
    }
    public Employee clone() throws CloneNotSupportedException
    {
        Employee cloned = (Employee)super.clone();
        cloned.name = (String) name.clone();//Eclipse提示这个clone函数不可视
        return cloned;
    }
}
        String abc = "abc";
        String xyz = new String(abc);
        System.out.println(xyz);
------解决方案--------------------
public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence
------解决方案--------------------
为啥要clone,4楼写的不是做得很好么
------解决方案--------------------
public Employee clone() throws CloneNotSupportedException
    {
        Employee cloned = (Employee)super.clone();
        cloned.name = new String(name);//这样就构成了一个新串,String没有实现Cloneable不能被克隆
        return cloned;
    }
------解决方案--------------------
改用StringBuffer吧,效率比String高
------解决方案--------------------
搂主的意思是
A,B指向同一个对象,然后A改变,B也跟着改变。
如果是这样的话的话, 那String是不可能实现的,String是不可更改的。
你必须自己建立一个类,他包含String就行了。
如果不是,你把string当成int一样就性了
------解决方案--------------------
难道是在做面试题的练习吗?
STRING 与STRINGBUFFER的区别 
还是
FINAL FIANLLY FINAIZE的区别?