java - 如何更改包含已更改实例变量的实例变量

标签 java oop

为什么 setWav 不改变 wav + ""+ "Grapes" 中的 wav?如果我想让它输出 Oranges,我是否必须为 add 创建一个 set 方法?葡萄?

编辑:感谢大家的帮助,非常感谢。

package javaapplication1;

public class JavaApplication1 {

    public static void main(String[] args) 
    {
        NewClass object1 = new NewClass();
        System.out.println(object1.getAdd());
        object1.setWav("Oranges?");
        System.out.println(object1.getAdd());    


    }
}


输出:

Burgers Grapes

Burgers Grapes


package javaapplication1;

public class NewClass 
{
    private String wav;
    private String add;

    public NewClass()
    {
        wav = "Burgers";
        add = wav + " " + "Grapes";       

    }

    public void setWav(String wav)
    {
        this.wav = wav;        
    }
    public String getWav()
    {
        return wav;
    }

    public String getAdd()
    {
        return add;
    }    

}

最佳答案

您的 getAdd 方法返回 add。您在 NewClass 构造函数中设置了 add 的值,但在其他任何地方都没有设置,因此即使您更改 wav (这两个变量不是以任何方式相关,更改一个不会影响另一个)。你可以试试这个:

public void setWav(String wav) {
    this.wav = wav;  
    add = wav + " " + "Grapes";  // i.e. add = wav + " Grapes";
}

关于java - 如何更改包含已更改实例变量的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486038/

相关文章:

c++ - 如何在 C++ 中检查一个对象是否==this

c++ - 强制使用通用方法名称

java - OnSeekBarChangeListener 在 Android 中总是评估为 null

java - 为什么简单的 FileInputStream 行返回异常?

java - 将java程序变成独立的应用程序

javascript - 如何通过对象传递回调的结果?

java - 扩展由java中的静态方法返回的对象

java - 查找二维数组中项目的索引

java - hibernate 异常;找到同一集合的两个表示

java - 从 Java 使用时 Windows 2008 Server 上 %~dp0 的行为