Java中目前学习涉及到的四种权限修饰符都有什么?并说明各自的权限范围

如题所述

(1)public : 公共权限

修饰对象: 修饰类、方法、属性

继承:       被public所修饰的成员能被该类的所有子类继承下来。

作用域:    可以被任意类访问

public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点知识。一个类作为外部类的时候只能被public或者默认访问修饰符所修饰,但是一个类如果作为内部类的时候,则可以被四种访问修饰符所修饰,因为一个类作为内部类的时候,就作为外部类的一个成员属性了,因此可以有四种访问修饰符修饰,这是内部类和外部类的一个区别。

public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。

public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。


(2)protected:受保护的权限

修饰对象:修饰内部类,接口,属性,方法

继承:       被protected所修饰的成员能被该类的所有子类继承下来。

作用域:    可以被同包类访问,如果不是同包,必须是该类的子类才能访问


(3)default : 同包权限(默认,缺省的)

修饰对象:修饰类,属性,方法。

继承:被default所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中default修饰的成员)

作用域:    只能被同包的类访问


(4) private : 私有权限

修饰对象 : 内部类,属性,方法

作用域:     只能在本类中使用

注意:

(1)protected不能修饰类。

(2)priavte可以修饰类,但是该类必须是一个内部类。

在定义类时,推荐访问控制级别从严处理:

(1) 如果不允许外部直接通过 new 创建对象,构造方法必须是 private。

(2)工具类不允许有 public 或 default 构造方法。

(3)类非 static 成员变量并且与子类共享,必须是 protected。

(4)类非static成员变量并且仅在本类使用,必须是private。

(5)类 static 成员变量如果仅在本类使用,必须是 private。

(6)若是 static 成员变量,必须考虑是否为 final。

(7)类成员方法只供类内部调用,必须是 private。

(8)类成员方法只对继承类公开,那么限制为 protected。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-30

简单说一下:

    public 公共权限,

    可以修饰类,成员变量,成员方法,构造方法
    被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符

    protected 受保护权限,

    可以修饰成员变量,成员方法,构造方法,不能修饰类(外部类,内部类不考虑)

    如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。

    default 默认权限,

    类,成员变量,成员方法,构造方法都能使用默认权限,即不写任何关键字

    默认权限即同包权限,同包权限的元素只能在定义它们的类中使用,以及同包的类中被调用

    private 私有权限,

    可以修饰成员变量,构造方法,成员方法,不能修饰类(外部类,内部类不考虑)

    被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。

第2个回答  2020-06-30
private int age;
private void eat(){}本回答被提问者采纳
相似回答