当前位置: 移动互联网学院 > Java培训 > JAVA开发 > Java访问控制权限有哪些?区别是什么?
Java访问控制权限有哪些?区别是什么? 时间:2017-10-26     来源:华清远见Java培训中心

Java中的类和方法等都是有访问控制权限的,用来控制方法、类、属性等的生效范围,Java有四种访问控制权限,其中比较常用的就是public和private,今天华清Java学院小编就和大家分享下4种Java访问控制权限的区别,希望对大家有所帮助。

Java访问控制权限有哪些?区别是什么?

Java有四种访问控制权限:public、protected、friendly(default)、private,这四种权限的作用于如下:

Java四种访问控制权限的作用分布表

那么,如何理解Java中的这4种访问控制权限呢?

private:如果一个成员方法或成员变量或内部类名前使用了private访问控制符,那么这个成员只能在这个类的内部使用。

friendly:如果一个成员方法或成员变量名前没有使用任何访问控制符,就称这个成员所拥有的是默认的(default)访问控制符。默认的访问控制成员可以被这个包中的其它类访问(同一包中的任何类)。如果一个子类与其父类位于不同的包中,子类也不能访问父类中的默认访问控制成员。(所以它是针对同一包,不针对子孙类)。

protected:如果一个成员方法或成员变量名前使用了protected访问控制符,那么这个成员既可以被同一个包中的其它类访问通过new实例化该类后调用,也可以并只可以被不同包中的子类覆写或直接调用而非实例化访问访问。(同意包类+子孙类)

public:如果一个成员方法或成员变量名前使用了public访问控制符,那么这个成员可以被所有的类访问,不管访问类与被访问类是否在同一个包中。

他是指该被访问控制权限修饰的成员的作用域。

比如在包1定义了public父类,子类。那么该子类可以访问和覆写的该父类的public/protected/friendly修饰的成员(方法、变量、类)。而在包2内的类中实例化一个包1的子类,也不可以访问它的或它父类的friendly即protected修饰的成员,但可以继承它而访问或覆写protetcted修饰的成员.在子孙类中并不是指new出来访问而是指直接访问。

构造器也有访问控制权限,但无返回值类型。

以上简单介绍了一下4种Java访问控制权限的区别,平时使用的时候大家可以根据需求和环境进行选择。

X