day16.包机制

包机制

为了更好的组织类,java提供了包机制,用于区别类名的命名空间

这是什么意思呢,我们去桌面看一下,在桌面新建一个文件夹,在里面创建一个TXT,名为A吧,然后我们试试再新建一个同名的TXT,这时候系统会提示:此位置已经包含同名文件,这时候有什么解决办法?是不是新建一个文件夹,然后再把A.txt,放进去再把刚刚新建的文件改成A,就可以了

所以包的本质就是文件夹,我们之前就写过两个包,其实就是新创建两个文件夹,一个是base,一个是operator,因为里面都有Demo,为了它不重名,就这样来的

包语句的语法格式为:

package pkg1[. pkg2[. pkg3...]];
一般利用公司域名倒置作为包名;

但是我们这个包名是有规律的,不是凭空出来的,它一般是利用公司域名倒置的,

比如说百度:www.baidu.com,它的包就是com.baidu.www,除了百度,是不是还有百度百科呀(baidubaike)

再比如说,我们创建自己的博客网站是不是可以叫www.shileng.blog,

创建一个包

我们以百度为例,去IDEA看一下,创建一个包,名为:com.baidu.www

在这里插入图片描述

创建出来就是这样,如果有人创建出来的是这样的

在这里插入图片描述

那就在设置里面调一下找到上面的小齿轮,把这个勾勾点掉就行啦

在这里插入图片描述

创建出来以后,就可以在www文件里写关于www的东西,假设还有个百度百科,那就再创立一个包,专门放百科相关的内容

在这里插入图片描述

像这些东西分类好了,一个一个非常的清楚,那我们就可以创建一个自己的包,来放之前学习的时候创建的Demo了,我自己创立了一个叫:com.shileng的包,然后把这些Demo都放进包里面,再放的时候会跳出一个提示,这时候直接点第一个,do开头的就行

在这里插入图片描述

这样看起来,就不会那么乱了,

这时候我们随便点进一个demo看,上面多出了一串代码,我们把它删掉它就会报错,

在这里插入图片描述

这个package开头的是固定的,而且必须写到整个类的最上面,这是整个类的包,后面是这个包的路径,

为了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用“import“语句可完成此功能

import package1[.package2...].(class|*);

在有的时候我们需要用到其他类的东西,不再类里面有,这时候我们就需要导入那个包,才能使用,什么叫做导包呢,我们去试一下

比如说最简单的,输入一个Data,它就会导入一个包

在这里插入图片描述

这个包是java写好的类,这是已经导入好的,帮你写好的,如果把这条代码去掉,它就直接报错,这时候你按住alt+回车,它就自动帮你排查问题,选择第一个,再随便导入一个就可以了

上面就又回来这个import了,而这个import是必须在package的下面,如果放在上面就直接报错了

package是必须放在最上面的


那如果有人想玩一下骚操作,想在这个包的Demo01里面用上面那个包的Demo01,这时候是不是也要把上面这个包也导入进来呀

这时候呢,用上我们上面那个公式,输入import,加上路径

import package1[.package2...].(class*);
import com.shileng.base.Demo01;

在这里插入图片描述

这样就导入成功啦,但是我们在导入成功之后,我们看到,下面这个Demo01就报错了,因为这个Demo01已经被定义过了,已经有一个Demo01了

这就是所谓的包机制,要记住包名,要用公司域名倒装,或者自己的名称,

比如姓王,就可以叫:com.wang.什么什么;姓李就可以叫:com.li.什么什么,这都是可以的,重点就是为了命名空间重复的问题

那有人问了,我这个包里面有好多代码,一个一个找太麻烦了,有没有方法呀,这里有个方法,就是可以用星号表示导入这个包下所有的类

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值