包的引入
举例:小明和小强都想给自己定义的类命名为Dog(在同一个文件夹下不能有同名的类),包可以解决这个问题
包的作用
1.区分相同名字的类:可以把Dog类放在不同的包
2.当类很多的时候,可以很好的管理类(把功能相同或者相似的类放在同一个包进行管理)
3.控制访问反问
包的本质
实际上就是创建不同的文件夹来保存类文件
例子:
在com.xiaoming和com.xiaoqiang这两个包里创建了Dog类
包就是对应不同的文件夹或者目录,类放在对应的包下面
入门案例
package com.use;
import com.xiaoqiang.Dog;
//已定义具有相同简名的类型,不能再导入xiaoming这个包
//import com.xiaoming.Dog;
public class Test {
public static void main(String[] args) {
//已经导入了com.xiaoqiang这个包,所以不用再次声明
Dog dog = new Dog();
System.out.println(dog);
//com.xiaoming,用包名来区分两个Dog
com.xiaoming.Dog dog1 = new com.xiaoming.Dog();
System.out.println(dog1);
}
}
输出结果
包的命名规则
只能包含数字、字母、下划线、小圆点,但 不能用数字开头,不能是关键字或保留字
eg: demo.class.exec1 包含关键字class
demo.12a 数字开头
demo.ab12.oa 正确
## 标题
常用的包
一个包下,包含很多的类,java 中常用的包有:
- java.lang.* //lang 包是基本包, 默认引入, 不需要再引入.
- java.util.* //util 包, 系统提供的工具包, 工具类, 使用 Scanner
- java.net.* //网络包, 网络开发
- java.awt.* //是做 java 的界面开发, GUI
包的引入
package com.hspedu.pkg;
import java.util.Arrays;
//建议:需要使用哪个类就导入哪个类,不建议使用*
//import java.util.Scanner;//只会导入java.util包下的Scanner类
//import java.util.*;//导入java.util包下的所有类
public class Import01 {
public static void main(String[] args) {
//用系统提供的Arrays完成数组排序
int[] arr = {10, -5, 23, 0, 6};
//对其进行排序
//传统方法:自己编写排序,比如冒泡
Arrays.sort(arr);
//输出排序结果
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
使用细节
//package用来声明当前类所在的包,需要放在类(或者文件)的最上面
// 即PkgDetail这个类所在的包是com.hspedu.pkg
//一个类中只有一句package
package com.hspedu.pkg;
//import 指令位置放在 package 的下面,
// 在类定义前面,可以有多句且没有顺序要求
import java.util.Arrays;
import java.util.Scanner;
public class PkgDetail {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Arrays.sort(args);
}
}