Java访问控制修饰符

Posted zbgghost

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java访问控制修饰符相关的知识,希望对你有一定的参考价值。

访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Javav支持 4 种不同的访问权限。

  • default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

  • public : 对所有类可见。使用对象:类、接口、变量、方法

  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

我们可以可以通过以下表来说明访问权限:

访问控制
修饰符当前类同一包内子孙类其他包
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N
 1 class AudioPlayer {
 2    protected boolean openSpeaker(Speaker sp) {
 3       // 实现细节
 4    }
 5 }
 6  
 7 class StreamingAudioPlayer extends AudioPlayer {
 8    protected boolean openSpeaker(Speaker sp) {
 9       // 实现细节
10    }
11 }

如果把 openSpeaker() 方法声明为 private,那么除了 AudioPlayer 之外的类将不能访问该方法。

如果把 openSpeaker() 声明为 public,那么所有的类都能够访问该方法。

如果我们只想让该方法对其所在类的子类可见,则将该方法声明为 protected。

 

 

非访问修饰符

为了实现一些其他的功能,Java 也提供了许多非访问修饰符。

static 修饰符,用来修饰类方法和类变量。

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract 修饰符,用来创建抽象类和抽象方法。

synchronized 和 volatile 修饰符,主要用于线程的编程。

static 修饰符

  • 静态变量:

    static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。

  • 静态方法:

    static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

  • 静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。

 

以上是关于Java访问控制修饰符的主要内容,如果未能解决你的问题,请参考以下文章

Java修饰符

Java_修饰符详解

Java访问控制修饰符

Java访问控制修饰符

java中访问控制权限修饰符

java访问修饰符