最近在写应用时,对包与包之间方法的调用不太清楚,专门看视频和网站后整理了这篇文章,希望对刚入门的同志有所帮助,进入主题。
首先我们先简单看看Java中private、protected、public和default的主要区别:(看不懂没关系,有个印象就行,然后往下看)
我们将其分为两种情况:
一 同一个包中不同类
1通过导入类后new个对象。2继承(一般用protected,同个包作用不大,只限覆盖方法)
二 不同包之间方法的调用
1 直接调用
这是个简单的例子,testb包中的DemoB,调用了testa包中的DemoA中的look方法。
DemoB想调用look方法,首先DemoA需要public出来,即红框中的1,其次look方法也需要public出来,即2中所标出的,这里只能用public,正体现出第一张给的图的作用。
红框3需要注意的是,类名的全称为包名+类名。我们为了简化写法,就引入了Import关键字,(import testa.* 表示导入包testa的所有类)于是DemoB也可以写成:
2
DemoA保持不变,DemoB变成
然而,DemoB继承父类DemoA,父类为了只让子类DemoB使用look方法,就出现了protected关键字,于是,只允许继承才能使用。如下:
最后,还有两个关键字private和default没涉及到,private只能限定在同个类里面。如果类前面不加修饰,就默认为default,限定在同个包内。
Java修饰词共有11个,具体的简单介绍请看
有什么问题欢迎留言讨论交流,谢谢。