【发布时间】:2019-12-14 16:25:03
【问题描述】:
我对 java 比较陌生,所以我不知道问题是什么。在我的这个类的 getter 设置中,我试图评估输入是否为整数 1、2 或 3,然后它将返回此处描述的先前保存的 setter 之一。我在 setter 中使用了相同的条件语句,但 getter 告诉我我的方法需要返回 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;
}
}
}
【问题讨论】:
-
查看getter问题的答案..但是你的setter逻辑也很糟糕......你设置mark是方法的一个参数,我想你认为this.assignment1=mark而不是mark= this.assignment1 ...
-
我明白了。那么我是否将其更改为评估 this.assignment = mark;?我想我认为它会评估这样输入的标记将按该顺序分配给分配。如果这是有道理的。 IE。输入一个标记,然后保存到 this.assignmentx。等
-
查看带有异常的 getter 和正确的 setter 的编辑答案。希望对你有帮助。
标签: conditional-statements getter-setter