有人可以解释makeDeepCopy方法。静态部分是什么意思?

时间:2019-02-05 23:37:59

标签: java

makeDeepCopy方法是什么意思? 也是构造函数吗?以及为什么数据类型与类名相同。 我以为任何与该类同名的方法都是构造函数?

public class Name {

    // private instance => visible in Name class only!
    private String firstName;
    private String lastName;

    // constructor
    public Name(String firstName, String lastName) {
        // this keyWord differentiates instance variable from local variable
        // refers to the current object
        this.firstName = firstName;
        this.lastName = lastName;
    }


    public Name(Name name) {
        // Copy constructor
        this.firstName = name.getFirstName();
        this.lastName = name.getLastName();
    }

    public static Name makeDeepCopy(Name name) {
        // copy method
        return new Name(name);
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String toString() {
        return this.firstName + " " + this.lastName;
    }
}

1 个答案:

答案 0 :(得分:1)

它与类的名称不同,类的名称为Name,而方法的名称为makeDeepCopy。您看到的名称只是返回类型。

makeDeepCopy正在摄取一个Name对象,并使用相同的值创建一个新的Name对象。 makeDeepCopy调用位于其上方的Name构造函数(它吸收Name名称),并使用与传递给makeDeepCopy的Name对象相同的数据创建一个新的Name对象。