Java开发 访问控制符【学习篇10】

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
[1]

知识点内容

1. 面向对象设计 [2]

分析项目 --- 先找对象, 再设计类
开发项目 --- 先创建类,根据类new对象

2. 类访问控制符 [3]

有了包的概念之后,可以通过某种方式按照权限要求过滤对类的访问
控制类的访问,需要使用访问控制符
顶层类的访问级别:有两种(后续会内部类充当类成员时,针对该内部类可以使用类成员的访问控制符):
默认的(不提供访问控制符):仅可被同包的其他代码访问
public: 可以被任何代码访问

3. 成员的访问控制 [4]

除了类自身存在访问控制外,类的成员还存在更为精确的权限控制体系
为了实现封装特性,可以通过对类成员的权限访问来隐藏数据而暴露操作接口(简单来说就是阻止对成员变量的直接操作而由暴露成员方法对数据进行操作)

类成员的访问级别有四种

关键字 作用
private 私有的
default (不使用default关键字,和类的default类似,不提供修饰符即为默认权限)
protected 受保护的
public 公开的
  • public

任何其它类对象,只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法
不能单纯以成员访问控制符确定一个成员是否能够访问,如果类本身不能被访问,那么即便成员为public公开权限,也是不能被访问的

image.png

如果Demo类 去掉public

image.png
  • private

不允许任何其他类存取和调用

image.png
  • protected

如果一个类中变量或方法有修饰字 protected,同一类,同一包中可以使用。不同包的类要使用,必须是该类的子类
需要注意的是,即便在非同包的子类中,也只能通过直接调用继承下来的成员的方式访问protected成员,而不能使用父类的引用进行调用

image.png

[sex]属性用于演示作用
同包的可以访问
image.png

不同包的无法进行访问
image.png

不同包的子类 super 关键
image.png

  • default(不使用default关键字,和类的default类似,不提供修饰符即为默认权限)

同一包中出现的类 才可以访问

image.png

[desc]属性用于演示作用
同包的可以访问
image.png

非同包非子类 不能访问
image.png

非同包 即便是子类, 也不能访问
image.png

4. 成员访问控制符总结 [5]

image.png

2.应用场景:


3.实现目标:


4.代码实现:




  1. 【知识点回顾·简介】 ↓↓↓

  2. [面向对象设计] ↩

  3. [类访问控制符] ↩

  4. [成员的访问控制] ↩

  5. [成员访问控制符总结] ↩

你可能感兴趣的:(Java开发 访问控制符【学习篇10】)