java访问控制的原因:1 防止程序员接触到他们不该接触的东西. 2允许库程序员修改内部结构.java的访问控制体现了面向接口编程的思想,以及面向对象编程中的实现方案隐藏的思想,本文假设你已经对package概念比较了解
java采用三个显示关键字public,private,protected以及一个暗示性的friendly来修饰类,变量以及方法.
public:任何后续的定义任何人都可以使用.
private除了自己,类型的创建者以及类的内部函数,其他无法访问.
friendly涉及到包装概念.
protected与private相似,只是一个继承的类可以访问受保护的成员,但是不能访问私有成员.
上面的说明比较抽象笼统,下面按照对象消息交互的两个步骤来谈访问控制,面向对象是消息驱动机制,交互有两个步骤: 一 获得对象 二给对象的接口发送消息.因此java的访问控制也主要分两个步骤:第一客户类是否能够获取对象(主要有组合 以及继承),第二:能否访问对象中的变量以及方法.
根据上述两个步骤, 访问控制主要有两道关卡:1 类的访问控制权限 2类中方法的访问控制权限,具体如下:
private修饰的方法,只有类内部才可以访问,别的类即使new了一个含有private的的class,也不可以访问private类,这样的话,A类中的private方法,无论A类是什么类型,别的类都无法访问A类的private方法,即使别的类 A a=new A();也不可以采用如下方法访问Private方法:a.privateMethodName();protected修饰的方法,同样不可以采用a.proctedMethodName()访问.private修饰的方法变量,只有B类继承了A类,才能使用super.proctedMethodName()访问.friendly修饰的方法,对别的包的类来说都是不可访问的
java采用三个显示关键字public,private,protected以及一个暗示性的friendly来修饰类,变量以及方法.
public:任何后续的定义任何人都可以使用.
private除了自己,类型的创建者以及类的内部函数,其他无法访问.
friendly涉及到包装概念.
protected与private相似,只是一个继承的类可以访问受保护的成员,但是不能访问私有成员.
上面的说明比较抽象笼统,下面按照对象消息交互的两个步骤来谈访问控制,面向对象是消息驱动机制,交互有两个步骤: 一 获得对象 二给对象的接口发送消息.因此java的访问控制也主要分两个步骤:第一客户类是否能够获取对象(主要有组合 以及继承),第二:能否访问对象中的变量以及方法.
根据上述两个步骤, 访问控制主要有两道关卡:1 类的访问控制权限 2类中方法的访问控制权限,具体如下:
类修饰关键词:
修饰类只能:public,abstract,final.不加修饰即为friendly类.只有修饰为public的类,别的 包的类才可以继承或者引用这个类.定义为abstract,final以及不加修饰的类,别的包的类无法继承以及引用这个类.变量,方法修饰关键词:
public修饰的变量以及方法,任何类都可以访问,只要别的类有权限访问本类.private修饰的方法,只有类内部才可以访问,别的类即使new了一个含有private的的class,也不可以访问private类,这样的话,A类中的private方法,无论A类是什么类型,别的类都无法访问A类的private方法,即使别的类 A a=new A();也不可以采用如下方法访问Private方法:a.privateMethodName();protected修饰的方法,同样不可以采用a.proctedMethodName()访问.private修饰的方法变量,只有B类继承了A类,才能使用super.proctedMethodName()访问.friendly修饰的方法,对别的包的类来说都是不可访问的