为什么我们在从java中的包导入类时使用*呢?
例如,在java中从IO包导入类时,我们使用为什么我们在从java中的包导入类时使用*呢?,java,Java,例如,在java中从IO包导入类时,我们使用import java.IO.*,而不是使用import java.IO作为导入语句?使用import java.io时,出现一个错误,说明位置:package java。为什么会引发此错误?您只能导入类而不能导入包import java.io.*将导入java.io包中的所有类 要导入特定包中包含的所有类型,请使用带有星号(*)通配符的导入语句 现在,您可以通过其简单名称引用包中的任何类或接口 注意:另一种不太常见的导入形式允许您导入封闭类的公共嵌套
import java.IO.*
,而不是使用import java.IO
作为导入语句?使用import java.io
时,出现一个错误,说明位置:package java
。为什么会引发此错误?您只能导入类而不能导入包import java.io.*
将导入java.io
包中的所有类
要导入特定包中包含的所有类型,请使用带有星号(*
)通配符的导入语句
现在,您可以通过其简单名称引用包中的任何类或接口
注意:另一种不太常见的导入形式允许您导入封闭类的公共嵌套类。例如,如果graphics.Rectangle类包含有用的嵌套类,例如Rectangle.DoubleWide和Rectangle.Square,则可以使用以下两条语句导入Rectangle及其嵌套类
import graphics.Rectangle;
import graphics.Rectangle.*;
请注意,第二条import语句不会导入矩形
有关它的详细信息,请参见本页
导入java.io.*
将从io包导入所有类io
是包的名称,您只需要导入类
您也可以只导入所需的类。例如:import java.io.BufferedInputStream
查看文档,找到java.io
包中定义的所有类
还可以查看,以了解java中的所有包。使用*on
import java.io.*
将导入io目录中的每个类,您将无法导入目录。第二条语句将
io
视为类,而不是包。这就是错误的原因。您应该仔细阅读并使用Java命名约定来正确命名类
如果要使用java.io
包类,请正确使用import语句
import java.io.*;
这只是语法问题。如果查看如何导入特定类:
import java.util.List;
通过使用星号*
来表示从某个包导入所有内容,就像在许多其他环境中一样:模式匹配
,Ant
,等等
import java.util.*;
星号有一个与“一切”匹配的历史记录
由于惯例而不是任何Java限制,您将无法区分子包
io
和名为io
的类。如果命名的类不是以大写字母开头,则不会出现编译错误。在Java中,可以导入类和包。要导入类,可以使用类的完全限定名,如
import com.pkg.spkg.ClassName代码>
包spkg
可能包含很多类,您的应用程序中需要所有这些类。在这种情况下,最好导入所有类或包本身。因此,要导入整个包,我们可以使用通配符*
如
import com.pkg.spkg.*;
希望这能说明问题。代码>导入java.io代码>表示从包java
导入类io
。但是io
类不存在。java.io是一个包,而不是一个类。区别在于第一条语句在java中有效,第二条语句无效。@ErwinBolwidt您不正确,为什么第二条语句无效?@romac否您不正确。我希望拥有15k rep的人至少尝试编译import java.io在告诉其他人他们不正确之前,我已经在问题中提到,当我使用import java.io
编译时,我会得到一个错误:|你只是在我发表评论后才这么做的。。。在宽限期内,因此它不会显示在日志中。无论如何,我的评论仍然有效——问什么是有效的东西和无效的东西之间的区别是没有用的,因为你不能使用无效的东西。哦。。我不知道。谢谢package比directory:)@Elysium更合适,请参考答案中给出的链接。哇,它变了。。!!谢谢你的提醒。。