包机制
为了更好的组织类,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.什么什么,这都是可以的,重点就是为了命名空间重复的问题
那有人问了,我这个包里面有好多代码,一个一个找太麻烦了,有没有方法呀,这里有个方法,就是可以用星号表示导入这个包下所有的类