getter 方法中的条件语句

Conditional statement in getter method

我对 java 比较陌生,所以我不知道问题出在哪里。在这个 class 的 getter 设置中,我试图评估输入是整数 1、2 还是 3,然后它将 return 之前保存的 [=20] 之一=]s 描述在这里。我在 setter 中使用了相同的条件语句,但是 getter 告诉我我的方法需要 return 类型 int。我究竟做错了什么?或者我应该以完全不同的方式来做这件事吗?哈哈

public class AssignmentMarks {
    private String courseName;
    private int assignment1 = 0, assignment2 = 0, assignment3 = 0;


    public AssignmentMarks(String name, int mark1, int mark2, int mark3){
        //create constructor to use variables.
        this.courseName = name;
        this.assignment1 = mark1;
        this.assignment2 = mark2;
        this.assignment3 = mark3;

    }
    public void setMark(int assignmentNumber, int mark) {
        //assign value of the assignments
        if(assignmentNumber == 1) {
            mark = this.assignment1;
        }else if(assignmentNumber == 2) {
            mark = this.assignment2;
        }else if(assignmentNumber == 3){
            mark = this.assignment3;
        }

    }

    public int getMark(int assignmentNum) {
        if(assignmentNum == 1) {
            return assignment1;
        }else if (assignmentNum == 2) {
            return assignment2;
        } else if (assignmentNum == 3) {
            return assignment3;
        }
    }



}
public int getMark(int assignmentNum) {
    if(assignmentNum == 1) {
        return assignment1;
    }else if (assignmentNum == 2) {
        return assignment2;
    } else if (assignmentNum == 3) {
        return assignment3;
    }

     // in another case       
     throw new Exception("Assignment must be 1, 2 or 3);

}

对于setter

   public void setMark(int assignmentNumber, int mark) {
            //assign value of the assignments
            if(assignmentNumber == 1) {
                 // BAD mark = this.assignment1; don't set parameter is useless
                 this.assignment1=mark;     
            }else if(assignmentNumber == 2) {
                 // BAD mark = this.assignment2;
                 this.assignment2=mark;     
            }else if(assignmentNumber == 3){
                 // BAD mark = this.assignment3;
                 this.assignment3=mark;
            } 
         // in another case
         throw new Exception("Assignment must be 1, 2 or 3");
}

我不记得是否必须导入 Exception 才能抛出它们。 如果是,请将 import java.lang.Exception 放在您的代码之上。

你的逻辑可以使用数组来改进,但让我们走吧,之后你会 运行...