首页 > 解决方案 > 使用创建类的对象创建构造函数

问题描述

public class Foo {
    private int field;

    public Foo(Foo foo) {
        this.field = foo.getField();
    }

    public int getField() {
        return field;
    }

    public void setField(int field) {
        this.field = field;
    }
}

请有人可以帮助我理解这一点以及它将如何在测试类中初始化,它的作用以及它是否合法。

标签: javaconstructor

解决方案


这是您正在做的工作示例。您需要定义两个构造函数。一个没有 args,因为您已经定义了一个带有 args 的构造函数。另请参阅java 中的复制构造函数

 class Foo {
    private int field;

     public Foo(int arg) {
       this.field=arg;

    }


    public Foo(Foo foo) { // copy constructor
        this.field = foo.getField();
    }

    public int getField() {
        return field;
    }

    public void setField(int field) {
        this.field = field;
    }
}


public class Main {
  public static void main(String[] args) {
    Foo obj=new Foo(4); // Default constructor called
    Foo obj2=new Foo(obj);
    System.out.println(obj2.getField());
     System.out.println(obj.getField());
  }
}

推荐阅读