Java-权限访问操作符
原创约 790 字大约 3 分钟...
95-Java-权限访问操作符.md
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
使用访问权限修饰符对类的成员进行控制,在java中称为“封装”。
不过不要把封装理解为private,不要误认为不能访问成员才是封装。实际上对成员访问权限的任何控制(包括public)都可以称为封装机制。
构造器和类的权限通常为public;
private权限最小,限制类外访问,一般把属性设为private,让其他类不能直接访问属性,达到保护属性的目的;
friendly是默认权限,即不使用权限修饰符时,即为friendly,该权限声明的成员在类内以及在同一个包中的其他类可以访问;
而protected所修饰的成员在类内、同一个包中、所在类的子类中都可以访问。
public > protected > friendly > private
封装
- 信息隐藏,隐藏对象的实现细节,不让用户看到
- 将东西包装在一起,然后以新的完整形式呈现出来
- 例如,两种或多种化学药品组成一个胶囊
- 将方法和属性一起包装到一个单元中,单元以类的形式实现
“隐藏属性、方法或实现细节的过程称为封装。”
- 隐藏类的实现细节
- 让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
- 便于修改,增强代码的可维护性
- 可进行数据检查

- 用来控制类的成员和类的使用范围
- 类成员的访问权限修饰符:private、default、protected、public
- 类的访问权限修饰符:public、default
private | default | protected | public | |
---|---|---|---|---|
同一类 | √ | √ | √ | √ |
同一包中的类 | √ | √ | √ | |
不同包中的子类 | √ | √ | ||
其他包中的类 | √ |
示例
package 权限访问修饰符;
public class Order {//此处的public是不可修改的。。。若修改,代码报错不给过。。。
int id;
private class Test{}
protected class Student{};
}
package 权限访问修饰符;
public class Test {
Order order;
public void getId() {
// System.out.println(order.id);//若id的修改符为private则不能访问
}
}
在其它包新建测试类
package 权限访问修饰符;
public class Order {//此处的public是不可修改的。。。若修改,代码报错不给过。。。
public int id;
private class Test{}
protected class Student{};
}
package 继承;
import 权限访问修饰符.Order;//因为不在同一个包中所以需要导包
public class TestOrder extends Order{
Order order;
public void getId() {
// System.out.println(order.id);//public的可以访问
}
public static void main(String[] args) {
TestOrder o = new TestOrder();
System.out.println(o.id);//子类可以访问到父类中的protected属性
}
}
分割线
相关信息
以上就是我关于 Java-权限访问操作符 知识点的整理与总结的全部内容,另附源码
Powered by Waline v2.15.4