java - 在 Java 中定义复制构造函数

标签 java constructor copy-constructor

这是我的课:

class Cat {
    static int lives = 9;
    private String name;
    private int age;
    public Cat(String s, int i) {
        name = s;
        age = i;
    }
    public Cat(Cat c) {
       // Failed attempt to define Copy Constructor
        return new Cat(c.name,c.age);
    }
    public String toString() {
        return (name + ", " + age);
    }
}

我想定义复制构造函数,以便我可以从现有对象实例化一个新的 Cat 对象。像这样:

Cat Garfield = new Cat("Garfield",10);
Cat Tom = new Cat(Garfield);

当我尝试它时,它给出了复制构造函数定义的编译错误。请帮助我了解出了什么问题。是的,构造函数不能有返回类型,但我们在这里返回对 Cat 的引用。

最佳答案

不要做

return new Cat(c. ...

但是

this(c.name, ...)

构造函数不会通过 return 返回对象!

关于java - 在 Java 中定义复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936124/

相关文章:

java-- 为什么要复制类免疫性的参数?

c++ - 函数重定义: const parameter

java - 为什么,当我在 switch 语句中为每个枚举常量设置 case 时,我仍必须提供默认值?

java - 在构造函数中调用方法是一个好习惯吗?

java - 如何通过 Selenium WebDriver 和 Java 找到具有以下属性的“取消”按钮

c++ - 为什么基类构造函数不设置值?

具有 shared_ptr 成员的 C++ 复制构造函数

visual-studio-2008 - VC2008中的自动指针构造函数

java - 在 Android Eclipse 项目的 Assets 文件夹中拥有自己的数据库

java - 如何将ListView放入Fragment中