标签: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