Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我在使用包后无法访问类?_Java - Fatal编程技术网

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类。

虽然这是真的,但即使将其公开也没有帮助。基本上,寓意是——不要使用默认包。