JAVA的包——各自划分的领地

135 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情


在JAVA中不同的类型(类、接口、枚举和注解),难免会产生冲突,为了分清楚不同的类型,引入了包的概念

JAVA中为了防止JAVA类型命名冲突引用了包的概念,在包中可以定义一组相关的类型,并为它们提供访问保护和命名空间管理

一、定义包

1.定义语法
package pkg1[.pkg2[.okg3...]];

package语句放在源文件的第一行,在每个源文件中只能有一个包定义语句
pkg1~pkg3都是组成包名的一部分,之前用点(.)连接
它们的命名应该是合法的标识符,其次遵守JAVA包命名规范,即全部小写字母

2.示例与代码

package test.package;

public class HelloWorld {
    public String toString(){
        return "Hello World!";
    }
}

其中test是文件夹,package是子文件夹
如果在源文件中没有定义包,那么JAVA类型将会被放进一个无名的包中,称为默认包

二、引入包

1.引入作用
为了能够使用一个包中JAVA类型,需要在JAVA程序中明确引入该包
2.引入语法
import pkg1[.pkg2[.okg3...]].(Java类型名|*)
包名.类型名值引入具体Java类型,包名.*可以引入这个包下所有的Java类型
3.示例

import test.package.HelloWorld;
public class Test {
    public static void main(String[] args){
        HelloWorld h=new HelloWorld();
        System.out.println(h);
    }
}

在同一个源文件中引入两个相同JAVA类型名会产生编译错误,可以在没有引入包的Java类型名前加上包名
当前源文件与要使用的Java类型在同一个包中,可以不用引入包

三、常用包

1.java.lang
包含了java核心类,如Object,Class,String,包装类,Math等。使用此包不需要显式使用import语句引入,它是由解释器自动引入
2.java.io
包含多种输入/输出流类,如InputStream,OutputStream等
3.java.net
包含进行网络相关操作的类,如URL,Socket,ServerSocket
4.java.util
包含使用工具类和接口,如集合、日期和日历
5.java.text
提供文本处理、日期格式化和数字格式化等相关类的接口