这是一个简单的问题,但我真的被它搞砸了.我试图找到一个复制品,并用谷歌搜索它,但当我找不到令人满意的答案时,我更加惊讶.
import java.util.Scanner;
Run Code Online (Sandbox Code Playgroud)
在这个陈述中.Scanner是班级,
.util 是包的名称
什么是java或javax或一般第一期之前任何会站?
更新:
我也发现了这张照片:
http://www.javatpoint.com/package
这是真的吗?
根据JLS 7.1:
包的成员是其子包和在包的所有编译单元(第7.3节)中声明的所有顶级类类型(第7.6节,第8节)和顶级接口类型(第9节).
例如,在Java SE平台API中:
包java有子包awt,applet,io,lang,net和util,但没有编译单元.
java.awt包有一个名为image的子包,以及一些包含类和接口类型声明的编译单元.
如果包的完全限定名称(第6.7节)是P,并且Q是P的子包,则PQ是子包的完全限定名,并且还表示包.
所以你可以从中收集:
java 是一个没有类的包,只有子包.util是一个java完全限定名称的子包java.util.util不表示包裹,java.util确实如此."我也发现了这张照片:......这是真的吗?"
是的,util是一个子包java.但是,util不是一个包.java.util是一个包.
如果愿意,您可以将包视为目录结构,其中每个子包都是其外包中的文件夹.所以会有一个"文件夹"java,在其中,另一个"文件夹"util.包由其完全限定名称("完整路径")表示,因此java是包并且java/util是包./util不是一个包.但是目录结构所代表的包不是规范.这只是一种常见的实施方式.由主机系统决定如何存储包(JLS 7.2).
Java中的类由完全限定名称标识,该名称包含类的包和类的名称(以及任何外部类,如果有)的串联.通常,在导入语句中,例如:
import foo.bar.baz.MyClass;
Run Code Online (Sandbox Code Playgroud)
除了最后一个以点分隔的字段之外的所有内容都是包名(foo.bar.baz),最后一个字段是类名(MyClass).在您的示例中,java.util是包名称并且Scanner是类名.
这个过程实际上有点复杂,因为可能涉及内部/嵌套类和接口,但是你明白了.
| 归档时间: |
|
| 查看次数: |
27990 次 |
| 最近记录: |