【问题标题】:Using multiple Clone methods.. Java使用多种克隆方法.. Java
【发布时间】:2017-08-10 02:21:57
【问题描述】:

我正在尝试创建这个程序,它有一个主类 test001,它基本上制作 Appointment 对象的浅拷贝,另一个主类 test002 制作它的深拷贝。所以基本上我需要在 Appointment 类中添加代码支持他们两个..这是我输入的内容,但问题是,我收到一条错误消息,说我已经使用了克隆..我该怎么办?第一个 clone() 用于浅拷贝,第二个用于深拷贝

 public Object clone() throws CloneNotSupportedException {
    return super.clone();

 }
 public Object clone() throws CloneNotSupportedException
 {
     Appointment ap = (Appointment) super.clone();

     ap.date = (Date) date.clone();

     return ap;
 }

【问题讨论】:

    标签: java arrays eclipse sorting clone


    【解决方案1】:

    你必须给你的方法不同的名字,签名是完全相同的:相同的方法名,相同的参数,相同的返回类型...... 编译器应该如何知道选择哪种方法?所以只需重命名其中一个方法。

    【讨论】:

    • 你的意思是我可以使用 clone1 而不是克隆?那还能用吗?
    • 例如,仅命名一种方法 cloneShallow 和一种 cloneDeep。那时你必须尝试,但它肯定比现在更好;)
    • 谢谢!顺便说一句,我还有一个问题希望得到答案.. 基本上,我创建了具有 3 个属性的日期类,日、月、年,然后我在约会类中使用了这个日期类,如下所示:私人日期日期;.. 现在的问题是,我必须使用 setter 和 getter 从用户那里获取值。对于属性,我知道如何处理它。只需声明对象并输入 ap.setName("Liam") 或 ap.setAge(8);等等。但是我该如何使用 setDate() 呢? ://
    • 如果对您有帮助,请将我的解决方案标记为正确。我建议您为第二个问题打开一个新问题。没有任何代码很难找出你的意思。你的意思是构造函数?在自定义的 Date-Object 中,您不希望有 setDate() 方法。只需 setDay() setMonth() 和 setYear()。如果您不想使用构造函数,可以这样设置 setDate: setDate(int year, int month, int day){this.year=year;this.month=month;this.day=day;} 或setDate(其他日期){this.year = other.year;this.month=other.month;this.day=other.day;}
    猜你喜欢
    • 2018-08-20
    • 2012-09-14
    • 1970-01-01
    • 2012-12-18
    • 2011-11-26
    • 2017-05-16
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多