Java-权限访问操作符

涎涎原创约 790 字大约 3 分钟...JavaJava

95-Java-权限访问操作符.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

  • 使用访问权限修饰符对类的成员进行控制,在java中称为“封装”。

  • 不过不要把封装理解为private,不要误认为不能访问成员才是封装。实际上对成员访问权限的任何控制(包括public)都可以称为封装机制。

  • 构造器和类的权限通常为public;

  • private权限最小,限制类外访问,一般把属性设为private,让其他类不能直接访问属性,达到保护属性的目的;

  • friendly是默认权限,即不使用权限修饰符时,即为friendly,该权限声明的成员在类内以及在同一个包中的其他类可以访问;

  • 而protected所修饰的成员在类内、同一个包中、所在类的子类中都可以访问。

  • public > protected > friendly > private

  • 封装

    • 信息隐藏,隐藏对象的实现细节,不让用户看到
    • 将东西包装在一起,然后以新的完整形式呈现出来
      • 例如,两种或多种化学药品组成一个胶囊
      • 将方法和属性一起包装到一个单元中,单元以类的形式实现

“隐藏属性、方法或实现细节的过程称为封装。”

  • 隐藏类的实现细节
  • 让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
  • 便于修改,增强代码的可维护性
  • 可进行数据检查
  • 用来控制类的成员和类的使用范围
    • 类成员的访问权限修饰符:private、default、protected、public
    • 类的访问权限修饰符:public、default
privatedefaultprotectedpublic
同一类
同一包中的类
不同包中的子类
其他包中的类

示例

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-权限访问操作符 知识点的整理与总结的全部内容,另附源码open in new window

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4