Java提供了许多访问修饰符来设置类,变量,方法和构造函数的访问级别。四个访问级别是-
- default(默认) : 对当前包可见,不需要修饰符。
- private(私有) : 当前类可见。
- public(公共): 都可见。
- protected(受保护):对当前包和所有子类可见。
默认访问修饰符
默认访问修饰符意味着我们不会为类,字段,方法等明确声明访问修饰符。
在没有任何访问控制修饰符的情况下声明的变量或方法可用于同一包中的任何其他类。接口中的字段隐式为public static final,而接口中的方法默认为public。
可以在没有任何修饰符的情况下声明变量和方法,如以下示例所示:
String version="1.5.1"; boolean processOrder() { return true; }
Private私有访问修饰符
声明为私有的方法,变量和构造函数只能在声明的类本身内访问。
专用访问修饰符是最严格的访问级别。类和接口不能是私有的。
使用private修饰符是对象封装自身并从外界隐藏数据的主要方式。
下列类使用私有访问控制-
public class Logger { private String format; public String getFormat() { return this.format; } public void setFormat(String format) { this.format=format; } }
在这里,Logger类的 format 变量是私有的,因此其他类无法直接检索或设置其值。
因此,为了使此变量可用于外部世界,我们定义了两个公共方法: getFormat()与 setFormat(String)设置其值。
Public公共访问修饰符
可以从任何其他类访问声明为public的类,方法,构造函数,接口等。因此,可以从属于Java Universe的任何类中访问在公共类内声明的字段,方法,块。
但是,如果我们尝试访问的公共类位于不同的包中,则仍然需要导入公共类。由于类继承,类的所有公共方法和变量均由其子类继承。
以下功能使用公共访问控制-
public static void main(String[] arguments) { //... }
应用程序的main()方法必须是公共的。否则,Java解释器(如java)将无法调用它来运行该类。
Protectedprotected 访问修饰符
在超类中声明为protected 变量,方法和构造函数只能由其他包中的子类或受保护成员的类的包中的任何类访问。
protected 访问修饰符不能应用于类和接口。方法,字段可以声明为受保护,但是接口中的方法和字段不能声明为受保护。
以下父类使用protected 访问控制,以允许其子类覆盖 openSpeaker()方法-
class AudioPlayer { protected boolean openSpeaker(Speaker sp) { //implementation details } } class StreamingAudioPlayer { boolean openSpeaker(Speaker sp) { //implementation details } }
在这里,如果我们将openSpeaker()方法定义为私有方法,那么除 AudioPlayer 之外的任何其他类都无法访问它。如果我们将其定义为公共的,那么外界将可以使用它。但是我们的目的是仅将此方法公开给它的子类,因此才使用protected 修饰符。
参考链接
https://www.learnfk.com/java/java-access-modifiers.html
标签:Modifiers,Java,String,format,修饰符,无涯,访问,方法,public From: https://blog.51cto.com/u_14033984/8790912