gpt4 book ai didi

Java - 从对象属性获取方法

转载 作者:行者123 更新时间:2023-12-02 02:12:47 25 4
gpt4 key购买 nike

我正在使用这些类:

克兰特级

public class Klant {

private String naam;
private String adres;
private String geboortedatum;
private double gewicht;
private int bmi;

private Abbonement abbonement;

public Klant(String naam, String adres, String geboortedatum, double gewicht, int bmi, Abbonement abbonement){
this.naam = naam;
this.adres = adres;
this.geboortedatum = geboortedatum;
this.gewicht = gewicht;
this.bmi = bmi;
this.abbonement = abbonement;
}

public Abbonement getAbbonement() {
return abbonement;
}
}

类(Class)放弃

public abstract class Abbonement {

private String begindatum;
private int contractduur;
private double maandprijs;

Abbonement(String begindatum, int contractduur, double maandprijs){
this.begindatum = begindatum;
this.contractduur = contractduur;
this.maandprijs = maandprijs;
}
}

米隆级

public class Milon extends Abbonement{

private int niveau;

public Milon(String begindatum, int contractduur, double maandprijs, int niveau){
super(begindatum, contractduur, maandprijs);
if(niveau >= 1 && niveau <= 25) {
this.niveau = niveau;
} else {
this.niveau = 1;
}
}

public int getNiveau() {
return niveau;
}
}

现在我有一个带有 Milon 订阅的 Klant 对象。目前,我无法检索他们订阅的内容。

第一个想法是:

piet.getAbbonement().getNiveau()

但它不起作用可能是因为我认为它来自一个抽象类?

现在我的问题是,如果 Milon 中的 niveau 被遗弃在 Klant 对象中,我如何从它返回 niveau?

最佳答案

如果该属性非常通用(看起来确实如此),请将其带到基类中。

public abstract class Abbonement {
public int getNiveau() {
return 0;
}
...

public class Milon extends Abbonement{

@Override
public int getNiveau() {
return niveau;
}
}

通常,基类中会有一个方法,在 Milon 中重写,以对 niveau 以及可能的其他字段执行某些操作。用于显示有关修道院的信息。或者浓缩业务逻辑的东西 Abonnement.isGoedNiveau()

将 Abbonement 选为 Milon 更像是一种务实的黑客行为,而且风格不好:在那个地方,额外的信息太具体了。

关于Java - 从对象属性获取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49729299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com