大家好,我是你的老师父,这次讲讲剩下的两个权限修饰符一个是public,其实之前讲过,另外一个是什么都不写那其实是default或者称作friendly修饰符。
public:
这个修饰符权限完全公开,所有类和包都可以访问的到
作用:一般用作公开的方法、常量、静态变量、静态常量等地方
注意:属性上很少用public,为了保证安全,一般属性都是要封装private的。
那default或者说friendly
这个是包内可以访问,仅仅是包内所有类都可以访问
区别于protected的是:
protected是
1、包内所有类可以访问
2、包外的子类可以访问
默认访问权限是:
1、包内可以访问、同一个包内子类也可以访问!
2、包外任何类都是不能访问的!
比如下边的例子:
大家看到TeaCup继承了Cup类,Cup的deep属性是用的protected的访问权限,虽然两个类在不同包中,但是Cup的派生类也TeaCup是可以直接使用deep这个属性的。
那再看下边这个例子和上边例子目录结构一致,唯一不同的是属性的访问权限是默认的:
这个例子中Desktop中所有属性都是默认访问权限,也就是包访问权限
StudentDesktop和Desktop分别在两个包中
即使StudentDesktop是Desktop的派生类,那StudentDesktop也是无法访问属性的。
那默认访问权限在同一个包中的子类呢?咱们验证下,把StudentDesktop移动到test01包中(鼠标拽过去就可以)
那大家看,两个在相同目录了,并且是父子关系,那属性是默认的访问权限,这个属性在子类中是可以访问的!
大家自己试试在同一个目录下,属性默认的访问权限在非子类的类中是否可以访问?(其实是可以访问的)
那默认访问权限大家应该清楚了。
到此为止private、protected、default和public这四种访问权限的方式大家都学会了,
我给大家都列举一下private、protected、default和public这四种访问权限的权限列表吧,看截图:
现在四种访问权限已经跟大家讲完了,顺带讲了面向对象三大特征中的其中两种。下一篇把面向对象的第三大特征:多态跟大家讲讲,这个是一个难点,希望大家先找找资料看看。另外大家有时间回顾回顾这几篇文章!