java-包详解

java-包详解Java 中使用 package 语句定义包 package 语句应该放在源文件的第一行 在每个源文件中只能有一个包定义语句 并且 package 语句适用于所有类型 类 接口 枚举和注释 的文件

大家好,欢迎来到IT知识分享网。

抖音教学视频​​​​​​​

目录​​​​​​​

1、包介绍

2、作用

2.1、区分相同名称的类。

2.2、能够较好地管理大量的类

2.3、控制权限

3、包定义

4、package 包命名;

5、包导入

5.1、导入指定类或全部类

5.2、默认导入包

5.3、相同类名处理

6、系统包

java-包详解

1、包介绍

为了更好的组织类,用于区别类名的命名空间,其实就是基于工程的一个文件路径,如:​​​​​​​club.chuige.accesscontrol.test.sub 就是一个包

java-包详解

2、作用

区分相同名称的类、能够较好地管理大量的类、控制访问范围

2.1、区分相同名称的类。

在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。

比如DateUtil 就有好多包下面都有同名的类,这些都可以通过包名进行区分,我们引入的三方包,大家都是各自开发,比如:

1)三方DateUtil类  包:com.hutool.core.data

2)我开发发了一个DateUtil类  包:club.chuige.appmanagement.common.util.DateUtil

只需要import 相应的包的类即可,如果需要使用其他相同名称的类,使用全路径即可

java-包详解

java-包详解

通过pom的方式导入这个common包,就可以使用这个包下面的类文件了,一般的类路径,都和我们的包中的

<artifactId>app-management</artifactId> <groupId>club.chuige</groupId>

这两个相关,也决定了类在每一个包下的唯一性,避免冲突,如下引入了app-manager-service包

java-包详解

2.2、能够较好地管理大量的类

有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。

java-包详解

2.3、控制权限

包与包之间有控制访问权限的,不同包之间,对方法和属性的访问权限,比如类的访问控制,只能是空或者 public

访问范围 public
同一个类 可访问 可访问
同一个包中的其他类 可访问 可访问
不同包中的子类 不可访问(因为无法继承,不属于同一个包) 可访问
不同包中的非子类 不访问 可访问

还有其他属性和方法的访问权限

java-包详解

3、包定义

Java 中使用 package 语句定义包,package 语句应该放在源文件的第一行,在每个源文件中只能有一个包定义语句,并且 package 语句适用于所有类型(类、接口、枚举和注释)的文件。定义包语法格式如下:

java-包详解

4、package 包命名;

Java 包的命名规则如下:

1)包名全部由小写字母(多个单词也全部小写)

2)如果包名包含多个层次,每个层次用“.”分割。

3)包名一般由倒置的域名开头,比如 com.baidu,不要有 www。

4)自定义包不能 java 开头

5、包导入

5.1、导入指定类或全部类

Java 引入了 import 关键字,import 可以向某个 Java 文件中导入指定包层次下的某个类或全部类。

import 语句位于 package 语句之后,类定义之前。一个 Java 源文件只能包含一个 package 语句,但可以包含多个 import 语句。

java-包详解

1) 使用 import 导入单个类的语法:

import 包名+类名 import club.chuige.appmanagement.service.service.UserService;

2) 使用 import 语句导入指定包下全部类的用法按如下:

import club.chuige.appmanagement.service.service.*;

上面 import 语句中的星号(*)只能代表类,不能代表包,表明导入 example 包下的所有类。

提示:使用星号(*)可能会增加编译时间,特别是引入多个大包时,所以明确的导入你想要用到的类是一个好方法,需要注意的是使用星号对运行时间和类的大小没有影响。

通过使用 import 语句可以简化编程,但 import 语句并不是必需的,如果在类里使用其它类的全名,可以不使用 import 语句,无需导入import java.sql.Date

java.sql.Date d = new java.sql.Date();

5.2、默认导入包

Java 默认为所有源文件导入 java.lang 包下的所有类,因此前面在 Java 程序中使用 String、System 类时都无须使用 import 语句来导入这些类。但对于 Arrays 类,其位于 java.util 包下,则必须使用 import 语句来导入该类。

5.3、相同类名处理

在一些极端的情况下,import 语句也帮不了我们,此时只能在源文件中使用类全名。例如,需要在程序中使用 java.sql 包下的类,也需要使用 java.util 包下的类,则可以使用如下两行 import 语句:

import java.util.*;

import java.sql.*;

代码中强制用全路径来声明需要使用的类

java.sql.Date d = new java.sql.Date();

6、系统包

Java SE 提供了一些系统包,其中包含了 Java 开发中常用的基础类。在 Java 语言中,开发人员可以自定义包,也可以使用系统包,常用的系统包

说明
java.lang Java 的核心类库,包含运行 Java 程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、异常处理和线程类等,系统默认加载这个包  
java.io Java 语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等
java.util  包含如处理时间的 Date 类,处理动态数组的 Vector 类,以及 Stack 和 HashTable 类
java.awt   构建图形用户界面(GUI)的类库,低级绘图操作 Graphics 类、图形界面组件和布局管理(如 Checkbox 类、Container 类、LayoutManger 接口等),以及用户界面交互控制和事件响应(如 Event 类)
java.awt.image 处理和操纵来自网上的图片的 Java 工具类库
java.wat.peer 很少在程序中直接用到,使得同一个 Java 程序在不同的软硬件平台上运行
java.net 实现网络功能的类库有 Socket 类、ServerSocket 类
java.lang.reflect  提供用于反射对象的工具
java.util.zip     实现文件压缩功能
java.awt.datatransfer 处理数据传输的工具类,包括剪贴板、字符串发送器等
java.sql   实现 JDBC 的类库
java.rmi  提供远程连接与载入的支持
java. security   提供安全性方面的有关支持

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/114173.html

(0)
上一篇 2025-12-10 12:45
下一篇 2025-12-10 13:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信