java - 类值不受方法影响

标签 java

我正在学习赫尔辛基大学的 Java 类(class),但我在示例 75.1 上遇到困难。

link

问题是我的方法不影响对象的值。例如,练习需要输出

value: 10
value: 9
value 8

但是,我收到:

value: 10
9
value: 10
9
value: 10.

我使用的代码是:

public void decrease() {
    System.out.println(this.value - 1);

此外,我不能使用 return 语句,因为该方法必须为 void。

最佳答案

对。一般来说,“print x - 1”不会改变x的值。因此,我们必须更改 this.value。我们通过分配来做到这一点:

public void decrease() {
    this.value = this.value - 1; // decrease the value
    System.out.println(this.value); // print the new value
}

我们实际上可以使用一元 -- 运算符使用一行来完成此操作:

public void decrease() {
    System.out.println(--this.value); // Decrease this.value first,
                                      // then print the new value
}

注意 -- 的位置。如果我们写--this.value,我们会减少并然后打印。如果我们写 this.value--,我们会打印然后减少。

关于java - 类值不受方法影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131895/

相关文章:

java - JVM 中 .class 对象的同步范围

java - 用于调试的 Jar 合并与 android 抛出重复条目?

java 俄罗斯方 block : how to make a tetris piece move as 4 distinct tiles

java - 应用程序崩溃....NullPointerException

java - 使用 JpaRepository 查询获取值的出现

java - 可执行(可同步)构建输出,无需打包

java - 使用 SpringData 和 QueryDSL-JPA 查询映射值

java - 接口(interface)扩展可比

java - 从子进程登录时,Logback 导致线程卡住

java - 如何从使用反射实现接口(interface)的类的字段中获取值?