如何严格遵循给定的 UML 在子类中定义字段?
How do I define a field in a subclass by strictly following a given UML?
我正在尝试使用 java 实现下面的 UML 图:
我最近才接触到UML,据我了解,我不能在SBank或PBank中设置一个字段来定义它们的利率。还可以看出,在 class 银行中,没有像使用 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;
}
}
这个 UML:
不显示任何 class 中的任何 rateOfInterest
字段。它显示的是 Bank
是抽象的,并且有一个 int
-returning 抽象方法:getRateOfInterest()
。你可以看出 class 和方法是抽象的,因为它们的名字是斜体的。
public abstract class Bank {
// other members...
public abstract int getRateOfInterest();
}
UML 进一步表明您需要在 SBank
和 PBank
中覆盖 getRateOfInterest()
,这两个扩展 Bank
和 return 该实现的利率。您将直接 returning 值而不是将其存储在字段中。例如,SBank
看起来像:
public class SBank extends Bank {
public SBank(BankInfo info) {
super(info);
}
@Override
public int getRateOfInterest() {
return 8;
}
}
我从 UML 图中得到了 8
的值:
Interest Rate of SBank is 8 %.
我正在尝试使用 java 实现下面的 UML 图:
我最近才接触到UML,据我了解,我不能在SBank或PBank中设置一个字段来定义它们的利率。还可以看出,在 class 银行中,没有像使用 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;
}
}
这个 UML:
不显示任何 class 中的任何 rateOfInterest
字段。它显示的是 Bank
是抽象的,并且有一个 int
-returning 抽象方法:getRateOfInterest()
。你可以看出 class 和方法是抽象的,因为它们的名字是斜体的。
public abstract class Bank {
// other members...
public abstract int getRateOfInterest();
}
UML 进一步表明您需要在 SBank
和 PBank
中覆盖 getRateOfInterest()
,这两个扩展 Bank
和 return 该实现的利率。您将直接 returning 值而不是将其存储在字段中。例如,SBank
看起来像:
public class SBank extends Bank {
public SBank(BankInfo info) {
super(info);
}
@Override
public int getRateOfInterest() {
return 8;
}
}
我从 UML 图中得到了 8
的值:
Interest Rate of SBank is 8 %.