大家好,我是你的老师父,这次讲讲剩下的两个权限修饰符一个是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这四种访问权限的权限列表吧,看截图:

现在四种访问权限已经跟大家讲完了,顺带讲了面向对象三大特征中的其中两种。下一篇把面向对象的第三大特征:多态跟大家讲讲,这个是一个难点,希望大家先找找资料看看。另外大家有时间回顾回顾这几篇文章!

查看原文 >>
相关文章