我刚开始学习Java,并试图理解OOP,但似乎找不到任何人遇到同样的问题。我的问题是,可以在构造函数中使用方法,例如此处的示例:

package ezrab.nl;

public class Calculations {

    private int number;
    private int multiplier;

    private String operator = "";

    public Calculations(int number, String operator, int multiplier) {
        this.number = number;
        this.operator = operator;
        this.multiplier = multiplier;
        switch (getOperator()) {
        case "+":
            System.out.println(getNumber() + getMultiplier());
            break;
        case "-":
            System.out.println(getNumber() - getMultiplier());
            break;
        case "*":
            System.out.println(getNumber() * getMultiplier());
            break;
        case "/":
            System.out.println(getNumber() / getMultiplier());
            break;
        case "%":
            System.out.println(getNumber() % getMultiplier());
            break;
        default:
            System.out.println("Something went wrong.");
        }
    }

    public int getNumber() {
        return this.number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public int getMultiplier() {
        return this.multiplier;
    }

    public void setMultiplier(int multiplier) {
        this.multiplier = multiplier;
    }

    public String getOperator() {
        return this.operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

}


所以我想知道,是否允许使用我在构造函数中创建的方法。

编辑:我想指出,该程序正在工作。我只想知道我是否遵循规则正确地进行面向对象操作。

最佳答案

将对象的行为与创建分开:

public class Calculations {

private int number;
private int multiplier;
private String operator = "";

public Calculations(int number, String operator, int multiplier) {
    this.number = number;
    this.operator = operator;
    this.multiplier = multiplier;
}

public int getNumber() {
    return this.number;
}

public void setNumber(int number) {
    this.number = number;
}

public int getMultiplier() {
    return this.multiplier;
}

public void setMultiplier(int multiplier) {
    this.multiplier = multiplier;
}

public String getOperator() {
    return this.operator;
}

public void setOperator(String operator) {
    this.operator = operator;
}

public void print() {
     switch (getOperator()) {
    case "+":
        System.out.println(getNumber() + getMultiplier());
        break;
    case "-":
        System.out.println(getNumber() - getMultiplier());
        break;
    case "*":
        System.out.println(getNumber() * getMultiplier());
        break;
    case "/":
        System.out.println(getNumber() / getMultiplier());
        break;
    case "%":
        System.out.println(getNumber() % getMultiplier());
        break;
    default:
        System.out.println("Something went wrong.");
    }
}
}

10-05 21:10
查看更多