我的老师给我上了两门课,一门是护照,另一门是日期。
date 包含 3 个属性(字符串日、字符串月、字符串年)、getter、setter 和 2 个构造函数,其中一个是复制构造函数:
public date(date dt)
this.day=dt.getd();
this.month=dt.getm();
this.yaer=dt.gety();
passport 类包含 2 个属性(字符串名称、日期 exp(来自日期类))并且有一个构造函数:
public passport(string name, date exp)
this.name=name;
this.exp= new date(exp);
现在在主类中,每次我创建新日期和新护照时,每个日期都是重复的,并且每个护照都会得到 1 个垃圾对象。
我怎样才能克服这个垃圾对象?
最佳答案
how can i get over this garbage object?
如果date
实例是可变的,那么你就不需要;你做你正在做的事。
如果date
实例是不可变的(它们的状态一旦创建就无法更改),那么您只需使用给定的实例,而不是创建一个新实例:
public passport(string name, date exp)
this.name = name;
this.exp = exp;
}
如果可以修改 exp
,您就不会想要这样做,因为它会在您的 passport
实例与将 exp
传递给它的任何内容之间产生串扰。
关于java - 复制构造函数创建垃圾对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46264306/