为什么我使用包后无法访问类?

时间:2015-01-10 20:04:48

标签: 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 TestProtected extends T  
{

    public void method(){

    System.out.println(k);
    }
    public static void main(String[] args) 
    {
        System.out.println("HW!");
    }
}

但是当我在第二课中使用包时,访问类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类吗?

这里的问题与公众没有关系,我试过,更一般的,如果你只有T类而不是它的java代码怎么办?情况是您可以在没有包的情况下访问T类,但是无法使用包访问它。

1 个答案:

答案 0 :(得分:0)

你应该让你的班级T公开。否则,它在不同包中的类不可见。

您必须将T移动到单独的文件中,因为您不能在同一个文件中拥有多个顶级公共类。

最后,位于pacakge TestProtected的{​​{1}}课程应导入m课程。