如何解决为什么我不必导入刚在主类中使用的类? Java
| 我目前正在使用Deitel的书Java How to Program第8版(早期对象版本)学习Java。 我在有关创建类和方法的章节中。 但是,我对那里提供的示例感到非常困惑,因为它包含两个单独的.java文件,并且当其中一个使用另一个方法时,它没有导入该类。它只是从另一个.java文件创建了该类的对象,而没有先导入它。 这是如何运作的?为什么我不需要导入它? 这是本书中的代码(我删除了大多数注释,以节省打字空间/时间...): .java类://GradeBook.java
public class GradeBook
{
public void displayMessage()
{
System.out.printf( \"Welcome to the grade book!\" );
}
}
主.java文件:
//GradeBookTest.java
public class GradeBookTest
{
public static void main( String[] args)
{
GradeBook myGradeBook = new GradeBook();
myGradeBook.displayMessage();
}
}
我以为我必须写
import GradeBook.java;
或类似的东西。
如果我们不导入该类,编译器如何知道在哪里找到GradeBook类及其方法,以及如何知道它是否存在?
我做了很多谷歌搜索,但没有找到答案。
我是编程新手,所以请容忍我的新手问题。
先感谢您。
解决方法
这是因为两者都在同一包(文件夹)中。它们是自动导入的,无需为此编写import语句。
, 您不必导入与当前类位于同一包中的类。
另外,请注意GradeBook.java是文件的名称。该类的(简单)名称是GradeBook。每个类都应该放在一个包中。如果它在com.foo.bar包中,则类名称为com.foo.bar.GradeBook,这是导入此类时必须使用的名称。
阅读http://download.oracle.com/javase/tutorial/java/package/packages.html,以了解有关软件包的更多信息。
, Java不使用包含C的方式。取而代之的是,java使用一种称为类路径的概念,即包含Java类的资源列表。 JVM可以按名称访问类路径上的任何类,因此,如果可以扩展类并仅通过声明它们来引用类型,则JVM即可。
来自:在另一个Java文件中包含一个Java文件
, 这一切都与包裹有关。您正在尝试使用默认包中的类,该类不需要显式导入Java文件,即GradeBookTest中的GradeBook
您可以从这里开始学习软件包:
Java包教程
和:
创建和使用包
, 不必导入位于同一包中的类,因为它们彼此可见。您只需“ 3”一个在另一个包中的类:
import java.util.ArrayList;
请注意,您不是在导入文件,而是在导入类。
, 导入用于导入其他程序包中的类。由于您都没有声明包,因此它们都被放入默认包中。编译器可以找到它,因为该类位于同一目录中。
, 您不必导入同一包中的类。
, 好吧,同一包中的类会自动导入。
, 它们在同一包中。本教程将比我做的更多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。