在Java中定义复制构造函数

Sou*_*hee 3 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Cat Garfield = new Cat("Garfield",10);
Cat Tom = new Cat(Garfield);
Run Code Online (Sandbox Code Playgroud)

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

Gho*_*ica 7

不要这样做

return new Cat(c. ...
Run Code Online (Sandbox Code Playgroud)

但

this(c.name, ...)
Run Code Online (Sandbox Code Playgroud)

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