我对某些事情有些困惑,如果大家都可以澄清一下,我将不胜感激。我有一个类付款,其中包含一些方法和获取器/设置器。
例如,我是使用ItemCost方法返回属性itemCost的阀门还是使用吸气剂?

public class Payment {
    private int itemCost, totalCost;

    public int itemCost(int itemQuantity, int itemPrice){
        itemCost = itemPrice * itemQuantity;
        return itemCost;
    }

    public int totalCost(BigDecimal itemPrice){
        totalCost = totalCost + itemCost;
        return totalCost;
    }

    public int getBalance(int clickValue, int totalCost){

        totalCost = totalCost - clickValue;
        return totalCost;
    }

    public int getTotalcost(){
        return this.totalCost;
    }

    public void setTotalcost(int totalCost){
        this.totalCost = totalCost;
    }

    public int getItemcost(){
        return this.itemCost;
    }

    public void setItemcost(int itemCost){
        this.itemCost = itemCost;
    }
}


好的,所以不要实例化:
    int成本=另一个类中的payment.itemCost(quantity,itemPrice)

要做的事情:payment.itemCost(数量,itemPrice)
    payment.getItemcost



编辑2:是否会使所有方法都返回void并且仅使用getter会更好地进行编码?

public class Payment {
    private int itemCost, totalCost;

    public void calculateItemcost(int itemQuantity, int itemPrice){
        itemCost = itemPrice * itemQuantity;
    }

    public void calculateTotalCost(BigDecimal itemPrice){
        this.totalCost = totalCost + itemCost;
    }

    public void calculateBalance(int clickValue, int totalCost){
        this.totalCost = totalCost - clickValue;
    }

    public int getTotalcost(){
        return this.totalCost;
    }

    public void setTotalcost(int totalCost){
        this.totalCost = totalCost;
    }

    public int getItemcost(){
        return this.itemCost;
    }

    public void setItemcost(int itemCost){
        this.itemCost = itemCost;
    }
}

最佳答案

getter / setters用于为对象中的特定属性设置值并从对象中获取值,这样您就可以将属性定义为私有并强制封装(OO原理之一)。

当您进行任何计算(或)业务逻辑时,最好使用适当的操作名称代替get / set。

编辑:

正如neel所说,它始终建议将POJO保留为简单的bean,而不要塞入业务逻辑/计算中。您可能还有另一个具有业务逻辑的类,并在执行计算时使用get / setter从POJO中获取值。

07-28 14:01