首页 > 解决方案 > 我们可以在java中使用Setter方法来执行操作吗?

问题描述

setter 方法是否仅用于赋值?或者我们可以在其中执行操作。在这段代码中,注释部分给了我正确的输出,但是在使用 set 和 get 时,我得到的输出为 0。我想避免一次又一次地调用 totalMarksOfStudent() 方法,因为它有 5 个我不想再给出的参数和再次。那么在另一个类中返回totalMarksStudent而不调用totalMarksOfStudent()的方法是什么。

int totalMarksStudent = 0;


public void setMarks(int englishMarks, int mathsMarks, int physicsMarks, int chemistryMarks, int csMarks) {
    totalMarksStudent = englishMarks + mathsMarks + physicsMarks + chemistryMarks + csMarks;
}

public int getMarks(){
    return totalMarksStudent;
}

   // public int totalMarksOfStudent(int englishMarks, int mathsMarks, int physicsMarks, int chemistryMarks, int csMarks) {
   // totalMarksStudent = englishMarks + mathsMarks + physicsMarks + chemistryMarks + csMarks;
   // return totalMarksStudent;

}
public String displayTotalMarks() {
    String totalMarks1 = "Name " + name + "\tRoll No " + rollNo + "\tTotal Marks " + getMarks();//totalMarksOfStudent(englishMarks, mathsMarks, physicsMarks, chemistryMarks, csMarks);
    return totalMarks1;
}

标签: javamethodsparametersreturngetter-setter

解决方案


最好避免这种情况...

我认为最好在 setMarks (englishMarks , mathsMarks , ...) 中有一些像你的参数这样的字段,并在构造函数或 setter 方法中为它们赋值。此外,最好有一个名为 calculateTotalMarks 之类的方法,并在需要时不带任何参数地调用它。请记住,在 setter 方法中进行操作是没有问题的,但通常为了更好地设计程序,我们会避免这种情况。方法应该做他们名字所说的事情:例如,setter 仅用于分配,getter 仅用于访问值,calculateTotalMarks 用于计算总分等等......


推荐阅读