java - 使用创建类的对象创建构造函数
问题描述
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;
}
}
请有人可以帮助我理解这一点以及它将如何在测试类中初始化,它的作用以及它是否合法。
解决方案
这是您正在做的工作示例。您需要定义两个构造函数。一个没有 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());
}
}
推荐阅读
- r - 从R中数据框条目的前两个单词中删除前导问号
- reactjs - 如何使反应选项卡第一个索引处于活动状态
- c# - Xamarin 最大网格行/列定义
- react-native - React Native 在 localhost 上请求 node.js api 时返回 [未处理的承诺拒绝:TypeError:网络请求失败]
- python - 只需根据搜索返回一个单元格
- python - Python 脚本中 X LIKE '%T%' 导致“TypeError: dict is not a sequence”时的 SQL 案例
- javascript - IF 语句弄错了吗?
- php - 某些设备的phpmailer失败
- javascript - firestore 函数只返回一个承诺
- python - 如何在 Python 中同时使用 filter、group by 和 agg 函数