java—如何严格遵循给定的uml在子类中定义字段?

qxgroojn  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(417)

我试图用java实现下面的uml图:

我最近才接触到umls,据我所知,我无法在sbank或pbank内部设置一个字段来定义它们的利率。还可以看出,在类bank中,没有像使用setter方法那样定义利率的实现。我正在寻找关于如何进行这方面的建议,或者给定的uml有什么问题吗?下面是我用来尝试将uml实现为代码的一些示例代码:

public class BankInfo {
    private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

public class Bank {
    private BankInfo info;
    private int rateOfInterest;

    public Bank(BankInfo info) {
        this.info = info;
    }

    public void displayInterestRate(){
    }

    public int getRateOfInterest(){
        return rateOfInterest;
    }
}

public class SBank extends Bank{
    private int rateOfInterest = 8;
    public SBank(BankInfo info) {
        super(info);

    }

    @Override
    public int getRateOfInterest() {
        return rateOfInterest;
    }
}
20jt8wwn

20jt8wwn1#

此uml:

不显示任何 rateOfInterest 任何类的字段。它显示的是 Bank 是抽象的,具有 int -返回摘要方法: getRateOfInterest() . 可以看出类和方法是抽象的,因为它们的名称是斜体的。

public abstract class Bank {

    // other members...

    public abstract int getRateOfInterest();
}

uml进一步显示了您需要重写 getRateOfInterest() 两者都有 SBank 以及 PBank ,两者都延伸 Bank ,并返回该实现的利率。您将直接返回值,而不是将其存储在字段中。例如, SBank 看起来像:

public class SBank extends Bank {

    public SBank(BankInfo info) {
        super(info);
    }

    @Override
    public int getRateOfInterest() {
        return 8;
    }
}

我得到了 8 从uml图中可以看出:
储蓄银行的利率是8%。

相关问题