我有两个班级:
首先,使用一个构造函数:
public class First {
First (ObjectA myObjectA) {
//do stuff
}
}
其次,有两个构造函数:
public class Second {
Second (ObjectB myObjectB) {
//do something...
}
Second (ObjectC myObjectC) {
//do something else...
}
}
当我想实例化我的 First
类时,Eclipse 生成一个错误(“构造函数不可见”),我必须添加 public
到 --- First
的构造函数 ---
:
First first = new First(myObject); //Error : "The constructor is not visble"
但是当我实例化我的 Second
类时,我没有错误:
Second second = new Second(myObjectC); //No error...
注意:我在另一个类中实例化了 First
,但在 Second
中实例化了 First
。 First
和 Second
在同一个包中。
你能解释一下为什么吗?
原文由 BnJ 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的构造函数没有访问修饰符使其成为 package private 。假设 First 和 Second 在同一个包中,您可以从 first 调用 Second 的构造函数。但是,另一个包中的另一个类不能访问任何构造函数。