00:00
大家好,我是海波老师,咱们来继续学习Java面向对象中的相关语法,我们这里呢,拷贝,拷贝以后呢,我写上一个零九,然后呢,把后面这个东西啊,我写上它,咱们叫package,这个package啊是我们之前咱们Java源代码当中我们的第一行的那个关键字,我们点击OK,点击OK以后,大家有没有发现这个就叫package,我们接下来就给大家讲一讲它吧,所以把这个下面咱们全都去掉,去掉以后面向对象我们写上它,咱们叫package,这个呀,咱们翻译过来呢,我们称之为叫做包,什么意思呀,就是包的意思呀,生活中不就有包吗?比方说什么书包啊,背包啊,皮包啊什么什么的,对不对,就是这个包。其实啊,就是一个容器的感觉,里面可以容纳东西,在咱们Java中啊,含义是相同的,只不过容纳的不是我们所谓的东西了,容纳的是我们的泪。Package中容纳。大家还记得吗?我们每学一个章节都会在左边点击右键选择new,我们这里呢会选择什么?Package这里呢,我们其实就在创建包,点击完成以后,它会有一个包的名,而这个包的名称我写完以后就会显示在我们的这个位置,然后呢,我们在里面创建的这个类啊,其实就重属于我们当前的这个package包,这个大家能不能明白,其实啊,咱们之前呢,我们很多的类呢,都有包,包括咱们之前给大家讲的那个叫object。
01:24
咱们的object呢也有对应的包,所以啊我们接下来呢,给大家来看一看,我们在我们的左边有一个它我点一下,点完了以后,我们的Java里面有个叫Java base,我们点点完之后你会发现这个就是我们所谓的包了,我点一下叫Java有个叫做浪,这个就叫Java点浪的包,你把这个打开,你会发现里面包含很多的内容啊,我们的object就在我们Java点这个包里,所以我准确的写法呢,应该是Java点点object这里呢,我们需要给大家说一下,诶,那为什么要创建这么多包啊,就是因为啊,如果把所有的类都放置在一个包里面太多了,它不好找啊,所以啊,可以根据类的作用呢,创建不同的包,然后呢,把类放到对应的包里就可以了,那这样的话找起来就会非常的方便,Java中的包可是很多的啊,那么我们之前说过了,我们的object等,包括咱们那个字符串,大家看一下,我点一下这个字符串,点点完以后你往上看,你会发现它所在的包就是Java点了对不对?诶那么我们这里再看。
02:25
咱们这里除了Java点浪以外,还有个叫做IO,这个IO包呢,就是我的输入输出的那个包啊,这个咱们后面会讲到,然后呢,里面放的就是我们跟输入和输出相关的一些我们的类了啊,就是这样,然后呢,我们再往下,下面呢,有一个叫YouTube的,顾名思义啊,这个叫做工具啊,所以这个包就是工具包,里面放置的就是一些方便我们进行操作的工具类,所以从语法的角度来讲,这个package语法啊,它的主要目的就是对类进行分类管理,所以我们这里说一下。它的主要功能。主要功能,它用于我们叫做分类管理。
03:04
把不同的类放在不同的包里面就干这个用的,对吧?我只要把这个包区分开,里面的类的功能我就能够区分开了,但是由于啊包里面含有类,而类最终是要产生class自解码文件的,所以咱们的包呢,也会对应文件路径,大家看一下,我们这里不是写了一个叫chapter吗?我点一下点击右件我们选一下,选择以后我们打开我的资源管理器,点开。点开之后大家会发现我的这个地方不就有个叫TRA04吗?点开里面不就全都是我们的类吗?对不对?同学们,这个大家能不能明白,也就意味着我们当前的包其实跟我们的物理路径是有很大的关系的,那既然我们的这个包跟这个路径有关系的,而路径呢,就存在了上下级的关系,所以啊,我们这里的包其实也有上下级关系,也就是说我们存在负包和子包的概念,什么意思啊?我们点击我们的new,我们选择new在创建一个package,我们叫做什么呢?叫做我们的child。
04:02
诶,Package我们这么写好了,然后回车,回车以后大家会发现在咱们的这个地方就会创建一个新的包,而这个新的包呢,它会对应一个文件目录,所以我点一下,点击之后你会发现在咱们这里就多了一个文件夹,如果你在写类的话,它会自动的放到里面去,咱们试一试来。我这边写上一个它,我们叫做new,我们创建一个类,这个类呢,我写上一个test,好,我们叫做package,叫测试我的包,然后呢,我选择class,选择完成以后,同学们你看这里不就有了吗?如果没问题的话,我现在呢给它写成一个main方法。我这里呢,直接点击右键我看一眼,诶打开打开以后我看一眼,你就会发现我这里确实在这个child package里面就有这样的一个文件了,还是比较简单的对吧?其实啊,就把那个路径呢,跟我们当前这个包做一个对应就可以了,不过同学们有个地方需要注意我们的这个呀包名称,你会发现它里面把我上一集的这个包和我们当前包它都列到了这个package里面,所以啊,咱们这个语法当中,这个package后面还不是包名,它应该称之为什么呢?叫包的路径。
05:12
而且这个路径呢,应该是一个完整路径,就是从我们最开始的第一个包到下面的这个包,它应该都是这样的,然后呢,我们的路径中的多个包使用点儿给它隔开。诶,这个咱们注意一下就行了,你看我的CHAPTER04是我们的上一级的包,我们的child package是我的下一级的包,他们俩形成了上下级的关系,我们称之为叫父包和子包,那么我们这里就写上父包点我们的子包好了,同学们,我们把这个包啊,咱们简单的说一下,那么这个关键字呀,记住了,有一些需要注意的地方,第一个这个关键字可以不出现什么意思啊,一个类可以没有包,所以咱们也说一下。一个类啊,可以没有包,但是我们的package它不可以在同一个源码文件中它使用多次,什么意思啊,我可以没有,但是你不能多,所以呢,大家看一下,我再写上一个,你这么写,我写上一个058,诶不行,这个关键字是不允许多写的,我们只能写一个,要么就没有,要么你就写一个,就是这个道理啊,所以呢,这个给大家说一下,还有一个问题,就是我们这个包名啊,我们一般为了区分咱们的类名呢,所以我们一般全都是小写的,所以呢,我们接着写我们的包名啊,为了区分类名,所以一般啊全部它都是我们的小写,还老师我们为什么要区分类名呢?其实很简单,我们刚才不说了吗?咱们的这个叫做Java点浪点object,这是什么意思啊,他就告诉你,我们现在使用的是Java这个包里面的浪包里面的object这个类。
06:55
那也就意味着,如果现在你这里也写个大写的话,那我就很难理解了,他们两个到底谁是类对不对,你到底是包啊还是什么呀,我就分不清了,所以呢,一般情况下我们会把我们的包名啊写成小写,这样的话一目了然,它容易区分,记住啊,主要是为了区分,其实你写大写也没有任何的问题啊,只不过我们一般会是小写啊。除了对类分包管理以外,咱们pack语法呢,还可以对相同名称的类进行区分,那么之前提到过我们给我们给类起名的时候,尽量要保证类名起的有意义,那恰恰是这样呢,就可能会导致类名相同,你不是有意义吗?很多有意义的名称可能是相同的呀,其实Java中就已经出现了这种情况,比方说咱们来写一个。
07:41
我们这里写什么呢?叫做date,叫日期,你会发现我们的这个地方就会提示你有两个名字叫做date,一个叫java.YouTube包里面的date,一个叫Java circle包里面的date,诶它是两个日期,所以呢,我们这里写上它。Java中啊,存在不同包的相同名称的类。
08:05
我们可以使用我们的包进行区分。那怎么区分呢?哎,你这么区分,咱们叫做new叫java.u.data哎,你这么写就行了,你这么写我一看,哎哟,我这个地方不就是java.u这个里面的date嘛,对不对,如果你不写麻烦了,为什么呢?如果你不写的情况下,那么这个时候我们这里就不知道你到底用的是哪一个包中的类,就容易混淆了,所以呢,我们这里也说一下,我们一般情况下,在使用类的情况下,我们都会使用。类的全名所谓的全名呢,就是我们的包名,再加上类名,这个我们就称之为叫类的全名,所以说你会发现,如果你不这么写就会有问题,我就写上叫加va,点我的u.date这样的话就没有任何的问题了。同学们,这个能不能明白啊?这里我们给大家解释一下pack语法中需要注意的地方就可以了啊。好了,同学们,我们的package就先讲到这里。
我来说两句