您的位置:首页 > 编程语言 > Java开发

java 访问权限

2014-04-15 20:37 225 查看


JAVA访问权限控制  

  |

Java的访问权限控制修饰符,从最大权限到最小权限依次是:public、protected、包访问权限(默认,没有关键字)和private。对于类的访问权限只能是:public和包访问权限(但内部类可以是private或protected的);对于类中的成员的访问权限可以是上述的四种。下面是各种访问权限的作用。   

一、public修饰的类:

作用域

 
     当前类
同一package普通类
其他package普通类
同一package子孙类
其他package子孙类
public





protected


×


默认


×

×
private

×
×
×
×
二、无修饰符(默认包访问权限)的类: 
作用域

 
     当前类
同一package普通类
其他package普通类
同一package子孙类
其他package子孙类
public


×

×
protected


×

×
默认


×

×
private

×
×
×
×
其中,对于一个包里面的包访问权限类A,在其他package的类里面import类A的时候就已经出错了。所以,其他package普通类是根本就访问不了类A,其他package的类也成为不了类A的子孙类。

Java中的访问修饰符(访问控制符)包括:public,protected,default,private。分别代表了不同的访问权限。如果省略,则被视为使用了默认的default作为访问修饰符。

  从字面含义上面理解,很显然,这几个访问控制符(public -> protected -> default ->private)所代表的访问权限是依次递减的。那么,所谓的访问权限是相对什么来说的呢?这个问题的答案就是,这里的权限是针对是不是同一个类、是不是属于同一个包、是不是存在父类子类关系。
  public:权限最大,不受类、包等的限制,都可以访问。
  protected:次于public,限制之处在于如果不再同一个包中,只有和它存在继承关系的子类才可以访问它。
  default:进一步受限,必须是同一个包才能访问。
  private:这个就将权限限制在了类中,只有同一个类中的成员才能访问。
  下面用表格更加直观地展现一下:

 

private

default

protected

public

同一个类中的成员

Y

Y

Y

Y

同一个包中的成员

 

Y

Y

Y

 不同包中但存在继承关系的子类成员

 

 

Y

Y

全局

 

 

 

Y

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 访问权限