猿问

在java中向类变量添加值的优雅方法

我有一个班级说Student


public class Student {

    private String name;

    private int score;

}

假设我都有 getter/setter。


目前,我有一个学生班级的对象说,它的分数值为50。我想在此对象中的分数中添加10。std


我可以通过下面的代码做到这一点:


std.setScore(std.getScore() + 10);

我正在寻找一种优雅的方法来写出相同的方式,其中我不同时使用getter和setter,只需将分数增加10甚至1。使用++或类似+=10之类的东西说。


慕姐8265434
浏览 160回答 2
2回答

侃侃尔雅

编写一个方法:public void incrementScore(int amount) {&nbsp; score += amount;}是否允许负增量?如果没有,请检查它:/**&nbsp;* Increments the score by the given amount.&nbsp;*&nbsp;* @param amount the amount to increment the score by; must not be negative&nbsp;* @throws IllegalArgumentException if the amount is negative&nbsp;*/public void incrementScore(int amount) {&nbsp; if (amount < 0) {&nbsp; &nbsp; throw new IllegalArgumentException("The increment must not be negative.");&nbsp; }&nbsp; score += amount;}这种方法比使用 /更优雅,因为:getset它允许您检查参数,再考虑业务规则,它添加了一个业务方法,其名称可以揭示意图。它允许您编写描述操作确切行为的JavaDoc注释

浮云间

正如评论中所说,您可以在学生班级上创建新方法。public class Student {&nbsp; &nbsp;private String name;&nbsp; &nbsp;private int score;&nbsp; &nbsp;public void incrementScore(int increment){&nbsp; &nbsp; &nbsp; &nbsp;this.score = this.score + increment;&nbsp; &nbsp;}}然后在 std 实例上调用它:std.incrementScore(10)
随时随地看视频慕课网APP

相关分类

Java
我要回答