如何在 java 中将值从一个对象复制到另一个对象?

How to copy values from one object to another from constructors in java?

提问人:Ayush 提问时间:7/19/2023 更新时间:7/19/2023 访问量:43

问:

public class testing {
     
    String name;
    String aname;

    testing(String n){


       this.name  = n;

    }

    testing(testing s){

        this.aname = s.name;

        
    }

    void display(){
        System.out.println(name + "  -first cons");
        System.out.println(aname + "  -second cons");
    }
    public static void main(String[] args) {
    System.out.println(" ");


    testing ab = new testing("test");
    testing ab2 = new testing(ab);


    ab2.display();
    ab.display();

    }
}

这是程序,我已将输出的屏幕截图与问题链接在一起。

输出

第一个构造函数初始化变量,我创建了第二个构造函数来创建另一个对象。我想从原始变量中复制变量的值,但我不知道发生了什么。 当我尝试使用方法打印变量时,它一次打印一个变量,同时在另一个变量中打印 null。

请帮助我解决这个问题,或指导我通过另一种方式解决这个问题。

我对编码相当陌生,所以请记住这一点。

谢谢。

Java 对象 变量方法 构造函数

评论

0赞 fantaghirocco 7/19/2023
baeldung.com/java-copy-constructor
0赞 daniu 7/19/2023
请不要发布链接,只需将输出粘贴到问题文本中即可。

答:

1赞 daniu 7/19/2023 #1

您正在初始化任一构造函数中的一个成员,然后打印出两个成员 - 因此您未初始化的那个将是 。null

你可能想要的是

class Testing {
 String name;

 public Testing(String aname) {
  name = aname;
 }
 public Testing(Testing source) {
  name = source.name; // or this(source.name)
 }
}

请注意,这与复制构造函数本身无关。