java - 我们可以在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;
}
解决方案
最好避免这种情况...
我认为最好在 setMarks (englishMarks , mathsMarks , ...) 中有一些像你的参数这样的字段,并在构造函数或 setter 方法中为它们赋值。此外,最好有一个名为 calculateTotalMarks 之类的方法,并在需要时不带任何参数地调用它。请记住,在 setter 方法中进行操作是没有问题的,但通常为了更好地设计程序,我们会避免这种情况。方法应该做他们名字所说的事情:例如,setter 仅用于分配,getter 仅用于访问值,calculateTotalMarks 用于计算总分等等......
推荐阅读
- sass - Scss 函数不返回计算值
- angular - 儿童模块中的角加载指示符不起作用
- haskell - 如何使用管道将惰性 ByteString 写入文件(在常量内存中)
- amazon-web-services - 如何使用 CDK 生成 AWS SES SMTP 凭证?
- reactjs - 如何为作为道具传入的 React 组件设置类型
- python - 您可以在 Python 中临时复制 Google Cloud 图像文件吗?
- javascript - 默认情况下,JavaScript 对象是否按排序顺序存储键(数字)?
- docker - 在艾泽拉斯核(最新版本)上安装幻化模块时出现问题
- sql - 错误:format() CONTEXT 的参数太少
- python - 如何确保在注册期间上传我的个人资料图片?