clone问题import java.util.*;public class Clonetest{\x05public
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/26 09:22:55
clone问题
import java.util.*;
public class Clonetest
{
\x05public static void main(String[] srgs)
\x05{
\x05\x05try
\x05\x05{
\x05\x05\x05employee original=new employee("jony",50000);
\x05\x05\x05original.sethireday(2000,1,1);
\x05\x05\x05employee copy=original.clone();
\x05\x05\x05copy.setsalary(10);
\x05\x05\x05copy.sethireday(2002,12,31);
\x05\x05\x05System.out.println("original:"+original);
\x05\x05\x05System.out.println("copy:"+copy);
\x05\x05}
\x05\x05catch(CloneNotSupportedException e)
\x05\x05{
\x05\x05\x05e.printStackTrace();
\x05\x05}
\x05}
\x05
}
class employee implements Cloneable
{
\x05public employee(String n,double s)
\x05{
\x05\x05name=n;
\x05\x05salary=s;
\x05\x05hireday=new Date();
\x05}
\x05
\x05public employee clone() throws CloneNotSupportedException
\x05{
\x05\x05employee cloned=(employee)super.clone();
\x05\x05cloned.hireday=(Date)hireday.clone();
\x05\x05return cloned;
\x05}
\x05
\x05public void sethireday(int year,int month,int day)
\x05{
\x05\x05Date newd=new GregorianCalendar(year,month-1,day).getTime();
\x05\x05hireday.setTime(newd.getTime());
\x05}
\x05public void setsalary(double p){salary+=salary*p/100;}
\x05
\x05public String toSting(){return "employee[name:"+name+",salary:"+salary+",hireday:"+hireday+"]";}
\x05
\x05private Date hireday;
\x05private double salary;
\x05private String name;
}
这是书上的,
System.out.println("original:"+original);
System.out.println("copy:"+copy);
是想输出什么?toString()为什么没有用
可是这里面有重写toString()方法啊
,public String toSting(){return "employee[name:"+name+",salary:"+salary+",hireday:"+hireday+"]";}
为什么输出的是
original:p215.employee@14318bb
copy:p215.employee@ca0b6
import java.util.*;
public class Clonetest
{
\x05public static void main(String[] srgs)
\x05{
\x05\x05try
\x05\x05{
\x05\x05\x05employee original=new employee("jony",50000);
\x05\x05\x05original.sethireday(2000,1,1);
\x05\x05\x05employee copy=original.clone();
\x05\x05\x05copy.setsalary(10);
\x05\x05\x05copy.sethireday(2002,12,31);
\x05\x05\x05System.out.println("original:"+original);
\x05\x05\x05System.out.println("copy:"+copy);
\x05\x05}
\x05\x05catch(CloneNotSupportedException e)
\x05\x05{
\x05\x05\x05e.printStackTrace();
\x05\x05}
\x05}
\x05
}
class employee implements Cloneable
{
\x05public employee(String n,double s)
\x05{
\x05\x05name=n;
\x05\x05salary=s;
\x05\x05hireday=new Date();
\x05}
\x05
\x05public employee clone() throws CloneNotSupportedException
\x05{
\x05\x05employee cloned=(employee)super.clone();
\x05\x05cloned.hireday=(Date)hireday.clone();
\x05\x05return cloned;
\x05}
\x05
\x05public void sethireday(int year,int month,int day)
\x05{
\x05\x05Date newd=new GregorianCalendar(year,month-1,day).getTime();
\x05\x05hireday.setTime(newd.getTime());
\x05}
\x05public void setsalary(double p){salary+=salary*p/100;}
\x05
\x05public String toSting(){return "employee[name:"+name+",salary:"+salary+",hireday:"+hireday+"]";}
\x05
\x05private Date hireday;
\x05private double salary;
\x05private String name;
}
这是书上的,
System.out.println("original:"+original);
System.out.println("copy:"+copy);
是想输出什么?toString()为什么没有用
可是这里面有重写toString()方法啊
,public String toSting(){return "employee[name:"+name+",salary:"+salary+",hireday:"+hireday+"]";}
为什么输出的是
original:p215.employee@14318bb
copy:p215.employee@ca0b6
![clone问题import java.util.*;public class Clonetest{\x05public](/uploads/image/z/10153558-46-8.jpg?t=clone%E9%97%AE%E9%A2%98import+java.util.%2A%3Bpublic+class+Clonetest%7B%5Cx05public)
童鞋,你的toString方法写错了...(toSting)
这是常犯的错,重写(override)需要方法签名完全一样,不然就是个新method而已.
加上注解(annotate)@Override可以帮助你
@Override
public String toSting() ...
====
method does not override or implement a method from a supertype
@Override
^
1 error
再问: 不好意思 我是新手 你写的这些完全看不懂 而且我这是JAVA核心技术书上的例子,我没有改动,只是觉得结果有问题,书上也没有写结果
再答: 好吧 你仔细看:你要的是toString方法,但你的代码里写的是toSting,你写错了或者书上印错了。 你把toSting 改成toString就起作用了。
这是常犯的错,重写(override)需要方法签名完全一样,不然就是个新method而已.
加上注解(annotate)@Override可以帮助你
@Override
public String toSting() ...
====
method does not override or implement a method from a supertype
@Override
^
1 error
再问: 不好意思 我是新手 你写的这些完全看不懂 而且我这是JAVA核心技术书上的例子,我没有改动,只是觉得结果有问题,书上也没有写结果
再答: 好吧 你仔细看:你要的是toString方法,但你的代码里写的是toSting,你写错了或者书上印错了。 你把toSting 改成toString就起作用了。
clone问题import java.util.*;public class Clonetest{\x05public
求解释下面的含义import java.util.ArrayList;public class ArrayListTes
import java.util.
import java.util.ArrayList;
import java.util.*;
import java.util.* 表示什么..
java里面import java.util.*;是什么用处
为什么是两个问号?import java.io.*;public class ReaderWriter{public s
import java.util.Date表示什么意思,java里的.
import="java.sql.*"和import="java.util.*" 有什么区别?
myeclispe5.5运行jsp,提示The import java.util is never used.哪错了?
判断是否为回文public class huiwen {\x05public static void main(Stri