1
package mypackage.pack1;
class PackClass {
  public PackClass() {
  System.out.println("I'm creating a packaged class");
  }
}

然后导入包含此类的包。即使类不是公共的,也可以使用公共构造函数吗?还是我需要在同一个包内才能使用它?我自己无法尝试,因为我不知道如何在我的 ClassPath 中使用 eclipse 保存包以导入它,所以如果你也能帮助解决这个问题,那就太好了。谢谢

4

2 回答 2

2

由于类修饰符是默认的,因此您不能从不同的包访问公共构造函数。

于 2013-08-08T09:13:15.123 回答
1

顶级修饰符是有效的,即在您的示例中, 即使构造函数是公共的,默认修饰符也是有效的。尝试像这样解释您的代码:

默认类 A { public A() {} }

你的公共构造函数被封装在一个默认级别的可访问类中,那么来自不同包的类如何在不破坏封装的情况下访问这个公共构造函数呢?它根本不能。自己试试。

于 2013-08-08T09:11:15.017 回答