夹是独体字还是上下结构 夹字是什么结构

使用任何语言进行编程都有一个相同的问题,就是命名冲突 。
Java课程300集——java零基础,小白自学,Java看得懂,学的会,学完可就业 。_哔哩哔哩_bilibili
程序一般不全是一个人写的,会调用系统提供的代码、第三方库中的代码、项目中其他人写的代码等,不同的人就不同的目的可能定义同样的类名/接口名,Java中解决这个问题的主要方法就是包 。
即使代码都是一个人写的,将多个关系不太大的类和接口都放在一起,也不便于理解和维护,Java中组织类和接口的方式也是包 。
包是一个比较容易理解的概念,类似于计算机中的文件夹,正如我们在计算机中管理文件,文件放在文件夹中一样,类和接口放在包中 , 为便于组织 , 文件夹一般是一个层次结构 , 包也类似 。
包有包名,这个名称以点号(.)分隔表示层次结构 。比如,我们之前常用的String类就位于包java.lang下,其中java是上层包名,lang是下层包名 。带完整包名的类名称为其完全限定名,
比如String类的完全限定名为java.lang.String 。Java API中所有的类和接口都位于包Java或javax下,Java是标准包,javax是扩展包 。
接下来,我们讨论包的细节,包括包的声明、使用和包范围可见性 。
1.声明类所在的包
我们之前定义类的时候没有定义其所在的包 , 默认情况下 , 类位于默认包下,使用默认包是不建议的,我们使用默认包只是简单起见 。
定义类的时候,应该先使用关键字package声明其包名,如下所示:
package shuo.laoma;
public class Hello {
//类的定义
}
以上声明类Hello的包名为shuo.laoma,包声明语句应该位于源代码的最前面 , 前面不能有注释外的其他语句 。
包名和文件目录结构必须匹配 , 如果源文件的根目录为E:\src\,则上面的Hello类对应的文件Hello.java , 其全路径就应该是E:\src\shuo\laoma\Hello.java 。如果不匹配,Java会提示编译错误 。
为避免命名冲突,Java中命名包名的一个惯例是使用域名作为前缀,因为域名是唯一的 , 一般按照域名的反序来定义包名,比如,域名是apache.org,包名就以org.apache开头 。
没有域名的也没关系 , 使用一个其他代码不太会用的包名即可,比如本节使用的shuo.laoma 。如果代码需要公开给其他人用,最好有一个域名以确保唯一性 , 如果只是内部使用,则确保内部没有其他代码使用该包名即可 。
除了避免命名冲突,包也是一种方便组织代码的机制 。一般而言,同一个项目下的所有代码都有一个相同的包前缀,这个前缀是唯一的 , 不会与其他代码重名,在项目内部,根据不同目的再细分为子包,子包可能又会分为下一级子包,形成层次结构,内部实现一般位于比较底层的包 。
包可以方便模块化开发,不同功能可以位于不同包内 , 不同开发人员负责不同的包 。包也可以方便封装,供外部使用的类可以放在包的上层,而内部的实现细节则可以放在比较底层的子包内 。
2.通过包使用类
同一个包下的类之间互相引用是不需要包名的,可以直接使用 。但如果类不在同一个包内,则必须要知道其所在的包 。使用有两种方式:一种是通过类的完全限定名;另外一种是将用到的类引入当前类 。只有一个例外 , java.lang包下的类可以直接使用,不需要引入,也不需要使用完全限定名,比如String类、System类,其他包内的类则不行 。
看个例子,使用Arrays类中的sort方法,通过完全限定名可以这样使用:

推荐阅读