我有以下两个类
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称之为错误?
答案 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
如果某个类是包私有,则可以在同一个包中使用,但不能由其他包导入