java 访问权限

来源:互联网 发布:网络系统集成技术方案 编辑:程序博客网 时间:2024/06/05 00:21

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

 

0 0
原创粉丝点击