Java中的四种访问修饰符:public、protected、default、private。

访问权限

#1.public(公共访问修饰符):对所有类可见。它在所有其他修饰符中具有最广泛的范围。

#2.protected:对同一包中的类可见、对同一包及不同包中的子类可见,但只能通过继承。该访问修饰符可以应用于数据成员,方法和构造函数。

#3.default:对同一包中的类可见、对同一包中的子类可见,如果不使用任何修饰符,默认情况下将其视为default修饰符。default修饰符只能在包内访问。

#4.private(私有):仅对类本身可见,就是只能在类中访问。

这一节需要理解修饰符的作用。修饰符(private、protected、public)是"封装"的基础,用于控制外部程序对对象内部信息的访问。

代码示例

看看这个程序,该"Rectangle"类有"width"字段和"height"字段以及构造函数,在main方法中创建一个对象。




default java 使用 java中default作用_default java 使用


该类声明了方法"getHeight",并且返回字段"height"。


default java 使用 java中default作用_java protected_02


在main方法中访问"rect"的字段"height"并打印结果。


default java 使用 java中default作用_default java 使用_03


现在,大家可以发现有两种方式可以访问height字段。

在height字段添加private关键字。


default java 使用 java中default作用_default java 使用_04


现在显示Main类仍然有"height"字段的错误,"private"修饰符使其无法被外部的类访问,删除"height"字段的"println"语句再运行程序。可以发现,通过getHeight的方法,程序任然输出矩形的高。


default java 使用 java中default作用_default java 使用_05


该"height"字段被封装在类中,只能在这个类内部被访问。

现在在"getHeight"方法之前添加关键字"public",表明该方法可以从外部访问。


default java 使用 java中default作用_default java 使用_06


标记字段"width"为"private"。


default java 使用 java中default作用_default java 使用_07


添加"public"方法""getWidth""返回宽度值。


default java 使用 java中default作用_java protected_08


在main方法中调用"rect"的""getWidth()""方法并打印结果。


default java 使用 java中default作用_default java 使用_09


可见是可访问的意思,即由这些修饰符修饰的成分(类、方法、成员变量)可以被其它类访问。对子类可见即子类可以继承。

四种修饰符可修饰的成分:类、方法、成员变量。