Java开发 包(Package)【学习篇9】

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
[1]

知识点内容

1. 包的概念以及意义 [2]

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间
包的作用:
把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,
包可以避免名字冲突
包也提供了限定了访问权限的一个控制范围,拥有包访问权限的类才能访问某个包中的类

Java 使用包这种机制是为了防止命名冲突,访问控制,提供搜索和定位类、接口、枚举和注解等,它把不同的 java 程序分类保存,更方便的被其他 java 程序调用
以下是一些JDK中的包:
java.lang:打包基础的类
java.io:包含输入输出功能的函数
java.util:包含一些重要的工具

开发者可以自己把一组类等组合定义自己的包。而且在实际开发中这样做是值得提倡的,将相关的类分组,可以让其他的编程者更容易地确定哪些类、接口、枚举和注解等是相关的
由于包创建了新的命名空间,所以不会跟其他包中的任何名字产生命名冲突。使用包这种机制,更容易实现访问控制,并且让定位相关类更加简单

2.Package import [3]

Java中用package语句来将一个Java源文件中的类打成一个包
package语句必须作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若忽略该语句,则指定为无名包)。它的格式为: package pkg1[.pkg2[.pkg3…]];
Java编译器把包对应于文件系统的目录管理
package语句中,用“ .” 来指明目录的层次
包名 域名倒置进行设置
www.chinasofti.com--------->com.chinasofti.xxx
Com.chinasofti.项目名称.包得功能名称
包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它

Import
为了能够使用其他包的成员,需要在 Java 程序中明确导入该包
使用 "import" 语句可完成此功能
在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:
import package1[.package2…].(classname|*);
如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略
import语句中类名部分可以使用通配符"*"
符号*表示直接导入包中所有的类
如:

image.png

表示导入com.chinasofti包中所有的类
注意:包和子包之间不存在继承关系,只要两个类不直接在同一个文件中即认为位于不同的包,因此*号只能包含本包中的类而不能包含子包中的类,即:
java.lang.*包中包含了Java语言中的核心工具(lang=>language),因此Java将其作为缺省加载的包存在,即使用该包中的类时无需import
类目录的绝对路径叫做 class path,设置在系统变量 CLASSPATH中
编译器和 java 虚拟机通过将 package 名字加到 class path 后来构造 .class 文件的路径
root\classes 是 class path,package 名字是 com.chinasofti,而编译器和 JVM 会在 root\classes\com\chinasofti 中找 .class 文件
一个 class path 可能会包含好几个路径,多路径应该用分隔符分开
默认情况下,编译器和 JVM 查找当前目录

3. 包的命名规则 [4]

创建包的时候,你需要为这个包取一个合适的名字,根据Java包的约定,名字内的所有字母都应小写,之后,如果非同包的其他的一个源文件使用了这个包提供的类、接口、枚举或者注释类型的时候,都必须在这个源文件的开头说明所引用的包名
通常,一个公司使用它互联网域名的颠倒形式来作为它的包名.例如:互联网域名是 chinasofti.com,所有的包名都以 com.chinasofti 开头


2.应用场景:


3.实现目标:


4.代码实现:




  1. 【知识点回顾·简介】 ↓↓↓

  2. [包的概念以及意义] ↩

  3. [Package import] ↩

  4. [包的命名规则] ↩

你可能感兴趣的:(Java开发 包(Package)【学习篇9】)