类访问修饰符

时间:2014-10-08 20:16:53

标签: java eclipse

我有以下两个类

package one;
public class Student
{
    //Some code
}

package two;
public class Test
{ 
     public static void main(String args[])
     {
           Student s = new Student();
           //Some code
      }
 }

即使“Student”类具有公共访问修饰符,每当我尝试为Student类创建一个对象时,在来自另一个包的Test类中,eclipse指出错误说我需要导入学生上课或创建一个新类。

我认为如果一个类被声明为public,则可以从任何地方访问它。但为什么eclipse称之为错误?

3 个答案:

答案 0 :(得分:3)

您没有import声明,因此编译器不知道Student是指one.Student。您可以使用:

import one.Student;

import one.*;

...或者在创建对象时完全限定名称:

one.Student s = new one.Student();

这不是可访问性的问题 - 编译器不知道如何将标识符Student解析为完全限定的类名。

答案 1 :(得分:0)

如果该类位于另一个包中,则需要将其导入,如此

import one.Student;

然后你就可以使用它了。这是为了避免在构建路径中的任何其他类具有相同名称时出现歧义。

答案 2 :(得分:0)

如果某个类是公开的,则意味着您可以在其他包中的包外使用它。你需要导入这个类。

import one.Student

如果某个类是包私有,则可以在同一个包中使用,但不能由其他包导入