[20-05-21][Class Notes 10]Java OO 10

Posted mirai3usi9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[20-05-21][Class Notes 10]Java OO 10相关的知识,希望对你有一定的参考价值。

技术图片

 

访问修饰符

类的每一个成员(包括成员变量,方法和构造器)都有一个访问修饰符
用来判断谁可以访问该成员

Java为类中的成员提供了四种访问级别,按照访问权限由大到小排列如下:

1、公开访问级别:public
2、受保护访问级别:protected
3、默认访问级别:为空
4、私有访问级别:private
用public关键字修饰的成员对外公开,即公开成员可以被任何其他对象访问
用受保护的protected成员可以被同一包中的类所访问,还可以被类的子类所访问,不管子类是在哪个包中
默认访问级别的成员可以被同一包中的其他类所访问
private是访问修饰符中级别最低的,私有成员只有类本身可以访问,不对外公开

有一个类Father,还有一个类Test。这两个类在同一个包中,在Test类中,产生Father对象
不能访问Father中的clone()方法

因为clone()在java.lang.Object中定义,用protected修饰,所以只能被同包和不同包的子类访问
其中同包的含义是,定义该方法的包,所以能被java.lang中的类直接访问,但是不能被其它包的类访问

解决方案是:在Father类中重写clone()方法,这时clone()方法在Father所在的包中定义
就可以被Test类访问了

封装
访问修饰符限制了属性和方法被使用和调用的范围

按信息隐藏的原则,将数据组织在一起的形式,称为封装

封装的特点:1、信息的集合 2、信息的隐藏

如果一个类的组件(数据成员或方法)被声明为私有类型(private)
则任何该类外部的方法是无法访问该组件的

公有属性和私有属性+get/set的区别

私有属性不能直接访问,只能通过get()方法访问,通过set()方法设置
可以删除get()和set()方法,将属性做成只读或只写属性。这一点共有属性做不到

私有属性只能通过set()方法进行值的设置,可以在设置值时,进行属性值合法性的验证
这一点公有属性也做不到

以上是关于[20-05-21][Class Notes 10]Java OO 10的主要内容,如果未能解决你的问题,请参考以下文章

[20-05-08][Class Notes 6]Java OO 6

JavaScript notes

Java Study notes

Notes: Principles of fMRI 2 (Coursera)

notes-19-05-10

有道云笔记网页版(Cloud notes page)