Pack.java导入pack.TestPack;但它无法访问它。我不明白为什么它尽管导入仍然无法访问该类。

错误

Pack.java:7: TestPack() is not public in pack.TestPack; cannot be accessed from outside package
        System.out.println(new TestPack().getHello());
                           ^
1 error

Pack.java
import pack.TestPack;
import java.io.*;

public class Pack
{
        public static void main(String[] args){
                System.out.println(new TestPack().getHello());
        }
}

TestPack.java
package pack;
import java.util.*;
import java.io.*;

public class TestPack
{
        private String hello="if you see me, you ar inside class TestPack";
        public String getHello(){return hello;}
        TestPack(){}
}

最佳答案

您应该公开TestPack的构造函数。

public class TestPack
{
        private String hello="if you see me, you ar inside class TestPack";
        public String getHello(){return hello;}
        public TestPack(){}
}

事实是,即使TestPack可见性是公共的,其无参数构造函数的可见性也是package(这是您未明确指定一个的可见性)。
package可见性意味着同一包中的类将能够看到它。由于TestPack和Pack不在同一个程序包中,因此Pack无法调用TestPack的构造函数。

10-04 18:31