提问人:Malone2409 提问时间:6/26/2020 最后编辑:MC EmperorMalone2409 更新时间:6/26/2020 访问量:71
继承私有值时如何制作复制构造函数?
How to make a copy constructor when inherited private values?
问:
我需要为大学的任务制作一个单位转换器。 因此,我们给出了以下代码:
public abstract class SIUnit {
enum EUnitType {
DISTANCE,
MASS,
TIME
};
private double value;
private EUnitType unitType;
public abstract void setDerivedValue(EUnitType newType, double newValue);
public abstract double getDerivedValue();
}
因此,作为私有值给出的值。现在我们需要为 SIUnit 制作一些解释器。 第二个任务是创建一些具有 spezized unittypes 以及构造函数和复制构造函数的类 我的问题是,如果我所有的参数都是私有的,如何制作复制构造函数?
答:
0赞
alex_ashwood
6/26/2020
#1
在 Java 中,您可以访问私有参数,因为复制构造函数位于同一类中。因此,对于您的复制构造函数,它看起来像这样:
public SIUnit(SIUnit inUnit){
value = inUnit.value;
unitType = inUnit.unitType;
//Same thing for the rest of the instance variables
}
评论
0赞
Betlista
6/26/2020
在 Java 中,没有什么比“复制构造函数”更重要了,我的意思是它并不特别。不仅可以从构造函数访问私有字段 - 如果不是类本身,谁能够使用这些字段?
0赞
alex_ashwood
6/26/2020
这是真的 - 我不是特指复制构造函数,而只是在类中。我认为提出原始问题是因为新实例不仅访问自己的值,而且还访问位于单独实例中的值。我会更新我的答案,让它更清楚一点。
评论