我真的可以找到关于此的任何信息..
getter和setter应该私有还是公开?
import java.util.ArrayList;
public class StudentRecords {
//private strings, ints and doubles
private String name, subject;
private int studentNo, level;
private double avg, total;
//constructor that sets name, studno...
public StudentRecords(String name, int studentNo, String subject, int level, ArrayList<Double> grades){
setName(name);
setStudentNo(studentNo);
setSubject(subject);
setLevel(level);
setAverage(grades);
}
public void setAverage(ArrayList<Double> grades) {
for(int i = 0; i < grades.size(); i++){
total += grades.get(i);
avg = total/level;
}
}
private void setName(String name){
this.name = name;
}
private void setLevel(int level){
this.level = level;
}
//public
public void setSubject(String subject){
this.subject = subject;
}
private void setStudentNo(int studentNo){
this.studentNo = studentNo;
}
public String toString() {
return ("Student Name: "+ this.name +"\nStudent subject: "+this.subject + "\nStudent Number: " + this.studentNo + "\nStudent level: " + this.level + "\nAverage Grade: "+ avg +"\n\n");
}
}
答案 0 :(得分:2)
一般来说,它们应该是公开的。如果它们是私有的,则只能在您的类中调用它们,因为您已经可以访问类中的私有变量,所以它们是多余的。它们的关键是允许将这些变量访问到其他外部对象。
答案 1 :(得分:0)
getter和setter总是必须公开,因为当你尝试在主类中使用它们时,如果它们是私有的,你就无法使用,所以你无法设置或获得你需要的变量
答案 2 :(得分:0)
这取决于您的要求和设计。通常,getter和setter是公开的,以提供其他类的访问。在你的班级和建设者看来,我相信你不想提供课外活动,所以 keepthem private 。
现在,那么为什么要拥有getter和setter,就像你已经在课堂上访问私人一样。理由是它更好地访问getter&amp ;; setter,这样如果你想在将来更新值时放置一些特定的验证或逻辑,就像studentNo不应该为零。然后你可以在一个地方做到。
再次讨价还价,直接访问变量将比使用getter和setter更快,所以如果您确定,将来不会进行某些验证,那么就不要创建getter setter。
答案 3 :(得分:-1)
Getter和Setter用于获取!并编辑私有成员变量的值。将它们设置为私有不会添加任何值,因为它们不能从类外部访问,并且可以从内部访问而根本没有setter和getter。
因此,答案是:他们必须是公共成员。