企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## package和import 在这一节,我们会学习package和import,也就是包语句以及导入语句。 你将会学习到 - 如何声明包,或者说是创建包,什么是子包 - 如何使用 import 或者如何导入已存在的类 让我们创建一个新的project,命名为 PackagesAndImports,然后就点Finish 让我们进入到 src 目录。表示 sources 也就是源代码。我们先创建一个新的包 我会命名为 io.zwt 当你在中间输入 . 的时候,你会分隔开两个包的,这样的话就会有两个包。或者说是父级包和子包,在这里例子,子包是zwt,在IntelliJ 还有选择可以不显示空的包。因为我们的io 包没有包含任何代码,可以隐藏起来的。只是隐藏起来。 现在让我们创建一个新的Java类,命名为 ImportExample. 这个类是在 io.zwt包里边的,所以你会看到开头那里会有package 语句。 在考试当中,如果没有出现package 包语句,通常表示默认已经导入了。有时候,代码不会从第一行开始的。 不要被这些迷惑你。 在IDE 有时候隐藏空的包好看一点。 现在让我们创建main方法 ```java package io.zwt; public class ImportExample { public static void main(String[] args) { } } ``` 接下来我们使用Random类去产生随机数字,然后按下Enter,发现IntelliJ自动添加了一个 import java.util.Random; ```java package io.zwt; import java.util.Random; public class ImportExample { public static void main(String[] args) { Random random = new Random(); } } ``` 所以这就是一个import语句,在java包里有个util包,然后里边有个Random类。 接下来打印出随机数字: ```java package io.zwt; import java.util.Random; public class ImportExample { public static void main(String[] args) { Random random = new Random(); System.out.printlin(random.nextInt(5)); } } ``` 范围是 5 ,如果我们现在运行这代码,你会看到:包头不包尾,输出的数字在0~5之间。 我们可以创建像 a.b.c.d 这样的包,但是我们通常不会这样命名。我们会起些有意义的包名。 然后System这个类,为什么我们不导入这个类。java 怎么知道使用System类?当我们没有导入它? 嗯,System是在Java.lang这个包的,这个包是自动导入的了。因为它比较特殊,很常用,所以自动导入了。 但是我们的Random类就要显示地导入。 java.lang这个包里面有很多常用的类,不用导入就可以使用了。不过我们可以试试导入一下会是怎样。java.lang.System; 其实什么都不会发生,只是多余。 只有不在java.lang这个包的类,才是需要导入的。 如果不适用导入语句,使用某些类的时候就会报错。 也有星号通配符导入语句,表示导入当前包里面的所有类。 例如 import java.util.*; 就导入了java.util这个包里面的所有类。 关于导入语句,还有个要注意的是,它必须出现在类定义之前。 package 语句之下。 在后面的课程里,会继续讲其它可能的错误,以及如何组织代码。