Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java对象从另一个实例获取变量?_Java_Oop_Variables - Fatal编程技术网

Java对象从另一个实例获取变量?

Java对象从另一个实例获取变量?,java,oop,variables,Java,Oop,Variables,我不太确定该怎么称呼它,但实际上,当我运行此代码时: public class test { static Device one; static Device two; public static void main(String[] args) throws Exception { one = new Device("One", "ONE"); System.out.println(one.getName()); t

我不太确定该怎么称呼它,但实际上,当我运行此代码时:

public class test {

    static Device one;
    static Device two;

    public static void main(String[] args) throws Exception {

        one = new Device("One", "ONE");
        System.out.println(one.getName());
        two = new Device("Two", "TWO");

        System.out.println(one.getName());
        System.out.println(two.getName());

    }
}
输出为:

ONE  
TWO
TWO
何时应该:

ONE
ONE
TWO
设备对象非常简单,它只接收两个字符串,第二个是我要求它打印的名称。我以前做过OOP,但我觉得我只是忘记了一些重要的方面,但似乎无法理解。感谢您的帮助,谢谢

下面是设备构造函数:

public Device(String iP, String Name) {
    //Set the IP address
    IP = iP;
    //Set the device's name
    name = Name;
    // Set the string version of the device (for transmitting)
    stringVersion = IP + ";" + name;
}
看起来您也在设备中使用了静态字段。这些不是实例字段。应该避免使用可变的静态字段。

看起来您也在设备中使用了静态字段。这些不是实例字段。应避免使用可变的静态字段。

注释:


显示整个设备类。IP和名称是静态的吗?-亚西尔亚斯2分钟 以前

是的

每当你实例化一个新的设备实例时,你的设备静态成员就会被重新初始化,这就是为什么你会有这种行为。您可以将一个和两个作为静态变量,但不应将可变成员变量设置为静态变量


显示整个设备类。IP和名称是静态的吗?-亚西尔亚斯2分钟 以前

是的


每当你实例化一个新的设备实例时,你的设备静态成员就会被重新初始化,这就是为什么你会有这种行为。您可以将1和2作为静态变量,但不应将可变成员变量设置为静态变量

如果您可以打印设备构造函数,它将帮助我们回答。显示整个设备类。IP和名称是静态的吗?是的,它们是静态的,非常感谢。伙计,我忘了。。。再次感谢!您应该能够在没有任何静态字段的情况下实现这一点。我建议您尽可能使用局部变量和最终非静态字段。如果您可以打印设备构造函数,它将帮助我们回答。显示整个设备类。IP和名称是静态的吗?是的,它们是静态的,非常感谢。伙计,我忘了。。。再次感谢!您应该能够在没有任何静态字段的情况下实现这一点。我建议您尽可能使用局部变量和最终非静态字段。