Java 为什么我在使用包后无法访问类?
我写了一个普通的班级Java 为什么我在使用包后无法访问类?,java,Java,我写了一个普通的班级 public class TestAccess { } class T{ private int i=0; int j=0; protected int k=0; public int m=0; } class TT { public void m(){ T t= new T(); t.j=9; } } 然后我用另一个类在同一个目录中访问它 public class TestPr
public class TestAccess {
}
class T{
private int i=0;
int j=0;
protected int k=0;
public int m=0;
}
class TT
{
public void m(){
T t= new T();
t.j=9;
}
}
然后我用另一个类在同一个目录中访问它
public class TestProtected extends T
{
public void method(){
System.out.println(k);
}
public static void main(String[] args)
{
System.out.println("HW!");
}
}
但是,当我在第二个类中使用package时,访问类T是错误的
package m;
public class TestProtected extends T
{
public void method(){
System.out.println(k);
}
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
你们能告诉我如何访问m包中的T类吗
这里的问题与public无关,我已经尝试过,更一般地说,如果您只有类T而不是它的java代码呢?情况是,您可以不使用包访问T类,但不能使用包访问它。您应该将您的T类公开。否则,它对不同包中的类不可见 您必须将T移动到一个单独的文件中,因为在同一个文件中不能有多个顶级公共类
最后,位于pacakge m中的TestProtected类应该导入T类。虽然这是真的,但即使将其公开也没有帮助。基本上,寓意是——不要使用默认包。