conditional-statements - getter 方法中的条件语句
问题描述
我对java比较陌生,所以我不知道问题是什么。在我的此类的 getter 设置中,我试图评估输入是否为整数 1、2 或 3,然后它将返回此处描述的先前保存的设置器之一。我在 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;
}
}
}
解决方案
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);
}
用于二传手
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
你的代码之上。
可以使用数组来改进您的逻辑,但是让我们走吧,在您运行之后...
推荐阅读
- celery - 如何在 celery 客户端中使用没有导入任务模块的画布?
- .net-core - Microsoft 帐户和 IdentityServer4
- javascript - 我如何将此灯箱图片库居中?
- excel - Listmover 事件仅在运行时触发一次
- css - 如何在父元素(div)内水平堆叠元素(卡片)
- apache - Apache Camel http 组件定时器 dockerization
- linux - 创建后将 POSIX 套接字的类型从 UDP 更改为 TCP
- rust - 我可以使用局部变量隐藏 const 绑定吗?
- json - Filebeat 6.2 无法解析 docker 容器的 json 日志
- r - 结合矩阵和暗名