什么是基础包java

什么是基础包java1 对包的理解 Package 为了更好地组织类 Java 提供了包机制 用于区别类名的命名空间 Java 中的一个 package 包 就是一个类库单元 包内包含有一组类 他们在单一的名字空间之下被逻辑组织在了一起 package 的作用就是 C 的 namespace 的作用 防止名字相同的类产生冲突 Java 编译器在编译时 直接根据 package 指定的信息直接将生成的 class

大家好,我是讯享网,很高兴认识大家。



1.对包的理解(Package)

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。Java 中的一个package(包)就是一个类库单元。

包内包含有一组类,他们在单一的名字空间之下被逻辑组织在了一起。

package的作用就是C++的namespace的作用,防止名字相同的类产生冲突。Java 编译器在编译时,直接根据 package 指定的信息直接将生成的 class 文件生成到对应目录下。例如 package aaa.bbb.ccc 编译器就将该 .java 文件下的各个类生成到工作目录 /aaa/bbb/ccc/ 这个子目录下。

包的作用主要有以下几点:

①把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

②如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,但不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免命名上的冲突。

③包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。 包是逻辑访问控制单元,构建类库单元(安全访问),包名相同的类在一个包内,与类的存放位置无关。 类的访问控制符:public 和包(默认 friendly)。对类的名称进行完全控制(完全限定类名),解决了名称的冲突问题。

包的命名规范:包的命名规范:公司域名反写.project(项目名称).module(模块名称),全部小写。

类的完全限定名: 公司域名反写.project(项目名称).module(模块名称).ClassName(类名)。

命名空间:包名是定义类名称的命名空间,保证类名的唯一。 类的完全限定名=包名(命名空间).类名

Java——包(概念理解+应用举例)_类文件

创建好一个包之后,在这个包内继续创建其他类文件,就如同上图这样的树形结构,文件夹的形式。

2.包的应用举例

Java——包(概念理解+应用举例)_类文件_02

如上图,我们先创建了一个包,包名为:com.horstmann.corejava,紧接着在包内创建一个不含main方法的类文件Employee,最后我们在上面的默认包(default package)中,创建一个包含main方法的类文件PackTest。详细内容我们来看下面的代码:👇👇👇

讯享网

①可以看到第一个代码框中的第一行:package com.horstmann.corejava; 这条语句是创建完包,并且在其中创建类文件之后,在程序块的第一行自动生成的,表示Employee类文件在com.horstmann.corejava包下。(package关键字)

②在第二个代码框中的第一行,我们使用 import com.horstmann.corejava.*; 这条语句来导入com.horstmann.corejava包中的所有文件内容,如果只想导入其中的Employee类文件,可以修改为 import com.horstmann.corejava.Employee。(import关键字)

在 .java 源程序中,如果没有 package 关键字,则该编译单元中类生成的 .class 类文件,将存放在当前目录中,称为默认包或未命名包,即(default package)。

代码中,剩余部分的内容,基本上都挺好理解的,下面我们来看一下上述代码的运行结果:👇👇👇

Java——包(概念理解+应用举例)_类文件_03

我们在上文中,提到了Java 中的一个package(包)就是一个类库单元。它采用的是树形结构,也可以看成是文件夹的形式,下面,我们就上面两段代码,在我的电脑中,查看一下这个文件夹。👇👇👇

什么是基础包java

Java——包(概念理解+应用举例)_类文件_04

Java——包(概念理解+应用举例)_java_05

可以看到,我们的PackageTest类文件是存放在默认包(default package)中的,所以没有具体的包名对应的文件夹,直接就存放在src当前目录下。

Java——包(概念理解+应用举例)_java_06

我们再来看这张图,大家对比前面那张图里的创建包以及包内类文件的具体名称,包名为com.horstmann.corejava,那么在这个包内的类文件就应该是com.horstmann.corejava.Employee,所以大家对照这个包名和类文件名,就会发现,它完全符合树形结构的文件夹存放形式!!!

大家在查找路径的时候,应该也会发现在bin文件夹和src文件夹的目录下,这部分包文件和类文件几乎是完全一样的。但是实际上这两者还是有区别的。

①对于bin目录下:全称是binary,它里面存放的是二进制文件,就是 .class 文件。

②对于src目录下:全称是source,它里面存放的是 .java 源文件。


小讯
上一篇 2024-12-29 07:04
下一篇 2025-01-02 15:08

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5718.html