sent
当您处理(您正在发送的)值的验证时,您将不得不使用上述代码实践。
例如,如果您不想允许将任何负数设置为studentNUmber
来自构造函数的 a,那么您必须编写一个逻辑来检查构造函数内部或方法内部的数字,具体取决于类是不可变的还是可变的。如果类是可变的,则在方法中编写逻辑,如果类是不可变的,则在构造函数中编写逻辑(在不可变的类中,不允许编写 setter 方法,因为 setter 方法可以更改对象的状态)。
如果您不应用此类逻辑,则可以将任何负值设置为studentNumber
.
此外,当您在其他类中创建了一个对象并且稍后您想要更改它的状态时,setter 方法很有用,例如,您想要更新学生的姓名,如下面给出的示例,
public class Student {
private String studentNumber;
private String studentName;
private double studentResult;
// The standard getter and setter method are define here.
public Student(String aNumber, String aName) {
studentNumber = aNumber;
studentName =aName;
}
public String getStudentNumber() {
return studentNumber;
}
public void setStudentNumber(String studentNumber) {
this.studentNumber = studentNumber;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public double getStudentResult() {
return studentResult;
}
public void setStudentResult(double studentResult) {
this.studentResult = studentResult;
}
@Override
public String toString() {
return "studentNumber:"+studentNumber+", studentName"+studentName+", studentResult"+studentResult;
}
}
class Test {
public static void main(String[] args) {
Student s = new Student("1", "AAA");
s.setStudentName("BBB"); //we should call this method because of "studentName" is private variable in Student class.
System.out.println(s);
}
}
about setStudentResult
,你不需要另一个实例变量,因为它已经在Student
类中声明了。相反,您需要在构造函数中再添加一个参数来setStudentResult
赋值。
public Student(String aNumber, String aName, long result) {
studentNumber = aNumber;
studentName =aName;
studentResult =result;
}