- 包的概念
- IDEA中创建包的方法
- 包存在的意义
- 如何导入某个包中的某个类?
- 静态导入
- 常见的系统包
Java中的"包"即是操作系统的文件夹,声明一个包用package关键字,若存在多个文件夹的嵌套,我们使用"."分隔,
IDEA中创建包的方法比如我创建的嵌套包名称叫做:
Zhengzhou.Universityof.AeronauticsandAstronautics
下面就是三级嵌套的包:
在操作系统本地打开文件夹,即再次盘上查看这个文件夹的情况
可能有些好兄弟的包的分级显示效果和我不一样,IDEA默认情况下显示如下
需要进行如下操作才使得空包也会分级显示,只选择我选中的选项
包存在的意义包的存在解释为了解决类同名的问题。
类的全名称就是:包名.类名
1.比如下面我在下最内层包中创建一个Test类
IDEA中最上方会显示类所在的包,类的全名称也就是:
Zhengzhou.Universityof.AeronauticsandAstronautics.Test
2.再在最外层包中创建一个Test类
此时在IDEA上方同样会显示类所在的包,此时类的全名称是:
Zhengzhou.Test如何导入某个包中的某个类?
我们使用import语句,import语句只能导入相关包中的某个类!!(import导入类)
比如我在 Zhengzhou 这个包下面在创建一个类叫Student,然后我想在 Zhengzhou.Universityof.AeronauticsandAstronautics.Test 这个Test类下面导入Student类,只需要使用import语句,如下图:
这里我们在IDEA中只需要在Test类中使用这个类,IDEA就会帮我们自动生成import语句。
在Java中还用很多工具类,下面简单介绍工具类的导入方法
Java的util类
此时的Date表示的是java.util这个包下面的类。
要是还需要用到这个包的其他类,不需要一行一行写,只需要使用imoprt.java.util.*;即可。此时整个util包下的所有类都会按需加载,此时导入的还是类,而不是把util包文件夹导入。
例如,下面我再使用util包下面的LinkedList类,只需要使用imoprt.java.util.*;
但是我们一般不推荐使用 import.*; 因为会有歧义,举个栗子:
因为Date类在 java.sql 包下面和 java.util 包下面共有的,此时我写成如图代码,就会报错,编译器就会懵逼,不知道下面的两个Date类是那个包下面的。
当程序用到了两个类名称相同的类,解决办法
1.使用类的全名称
报错是因为没有生成一个无参构造,这里介绍包,不要介意那些细节~~。
2.import 明确指定导入的是哪个包下面的类
用 import.java.util.Date;
静态导入概念:使用 import static 语句可以导入包中的静态方法和静态属性
例如下面代码:
package Zhengzhou;
//导入 System 这个类下面的所有静态方法和静态属性
import static java.lang.System.*;
导入 Math 这个类下面的所有静态方法和静态属性
import static java.lang.Math.*;
public class Test {
public static void main(String[] args) {
//类名.属性名称
System.out.println(123);
//导入系统包之后写成如下方式
out.println(123);
//类名方法名称
int ret = Math.max(3,5);
int ret1 = max(3,5);
out.println(ret);
out.println(ret1);
}
}
常见的系统包实际上Java中的 System.out.println(); 中的out属性就是个 static 属性。
正常代码写成//类名.属性名称 System.out.println(123);,但是使用import static java.lang.System.*;导入 System 这个类下面的所有静态方法和静态属性后,就可以直接写成out.println(123);
下面Math类的直接使用import static java.lang.Math.*;导入同理,不多赘述了。
| 包名 | 介绍 |
|---|---|
| java.lang | JDK的基础类,System,String,Object都在这个包下,JDK1.1之后这个包下的所有类自动导入。 |
| java.lang.reflect | 反射开发包 |
| java.util | 工具包(集合类都在这个包下,Arrays,LinkedList,HashMap) |
| java.io | I/O开发包,文件读取和写入 |
| java.net | 网络编程开发包,Socket |
| java.sql | 数据库开发用到的包 |
关于包的基础常用知识介绍到这里就差不多结束啦~ 后边会继续更细面向对象编程的知识,未完待续,喜欢的三连走起~~



