首页 > 解决方案 > 继承私有值时如何创建复制构造函数?

问题描述

我需要为大学的一项任务制作一个单位转换器。因此我们给出了这个代码:

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 创建一些构造函数。第二个任务是创建一些具有指定单元类型和构造函数和复制构造函数的类我的问题是如果我的所有参数都是私有的,如何制作复制构造函数?

标签: javainheritancecopy-constructor

解决方案


在 Java 中,您可以访问私有参数,因为复制构造函数位于同一个类中。因此,对于您的复制构造函数,它看起来像这样:

public SIUnit(SIUnit inUnit){
    value = inUnit.value;
    unitType = inUnit.unitType;
    //Same thing for the rest of the instance variables
}

推荐阅读