本文最后更新于:1 年前
Java笔记——包
创建时间:2019.11.23
说明:持续更新ing
包(package)
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
✔ 用来组织和管理类、接口、枚举和注解
✔ 有三方面作用:1)便于组织,比如按功能、按团队等;2)解决命名冲突;3)进行访问权限控制(同包可用,包外不可见等)
如同类似OS的文件夹(或目录或路径)一样,包也采用了树形目录的存储方式。
- 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
- 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
🔺 Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
同一个包中类名字是不同的,不同包中类的名字可以相同,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
package 包名
或
package 父包名[.子包名][.孙包名][.层次下去]
🔸包名符合标识符命名规范,一般由小写字母组成
🔹必须出现在源文件的第一行(忽略注释语句)
🔸每个源文件至多只能出现一个package语句
🔹如果没有package语句,那就使用无名包(或称默认包:所在的当前目录)
🔸包的背后对应着操作系统的路径名称
示例:
package ch08.web.sample; public class Person { String name; int age; //省略部分代码 } class Dog { String name; int age; //省略部分代码 }
🔺
package ch08.web.sample;
这个层级的文件夹必须先存在:即ch08/web/sample
🔺import 关键字
为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。
为了使用另外一个包中的成员(主要是类),可以明确import该成员。
避免重复使用完整路径的类名。
语法格式:
import package1[.package2…].(classname|*);
注意:
必须紧跟在package语句之后(若有的话,若无package,则import出现在源文件头部)。
可以使用
*
来表示导入当前一层包中的所有类。但是*
不可以连续使用。import java.*.*; // Error!
不表示可以继续导入当前包的子包。如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略。
类文件中可以包含任意数量的 import 声明。import 声明必须在包声明之后,类声明之前。
🔵JavaAPI的类库也是按照包的方式组织的
包名 | 描述 | 备注 |
---|---|---|
Java.lang | Java语言进行程序设计的基础类(核心类库),它是默认导入的包 | Runnable接口和Object、Math、String、StringBuffer、System、Thread、Throwable类 |
Java.util | 实用工具类包 | 定义系统特性、随机数、日期时间、日历、集合类等 |
Java.io | IO类包 | 包含能提供多种输入输出的文件读写类 |
Java.net | 网络编程API | |
Java.sql | 数据库操作包 | |
Java.text | 文本处理相关类 | 包含了一些用来处理文本、数字和消息的类和接口 |
Java.awt | 提供创建界面和绘制图形图像的所有类 | |
Javax.asing | awt上封装的GUI包 |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!