java - 使用创建类的对象创建构造函数

标签 java constructor

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;
    }
}

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

最佳答案

这是工作example你正在做什么。你需要定义两个构造函数。一个没有参数,因为你已经定义了一个带参数的构造函数。另请参阅 copy constructor在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());
  }
}

关于java - 使用创建类的对象创建构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59026554/

相关文章:

c# - 需要初始化的接口(interface)实现

reactjs - 在 React/React Native 中使用构造函数与 getInitialState 有什么区别?

java - 将 Yaml 文件转换为 java 对象

java - 外部方法如何在内部递归方法上执行?

function - cffunction 访问=

javascript - 如何检测函数是否被称为构造函数?

dart - 构造函数:将预处理的参数存储在传递给最终字段的辅助变量中

java - 如何在 eclipse 中禁用 dojo 错误

java - 有什么方法可以重新排列java源文件中的导入

java - FileOutputStream(File,append)写入时不追加