码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-05-21 16:06:53      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:object   无法访问   java   组件   obj   隐藏   构造器   prot   对象   

技术图片

 

访问修饰符

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

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

标签:object   无法访问   java   组件   obj   隐藏   构造器   prot   对象   

原文地址:https://www.cnblogs.com/mirai3usi9/p/12931084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!