programming-notes

Chapter 6. Names

6.6. Access Control

Misc

不是。

Java 中所谓的缺省访问权限,并不是写上 default,而是不写任何访问修饰符。这种权限通常称为:

例如:

class Student {
    int age;

    void study() {
    }
}

这里的 Studentagestudy() 前面都没有写 publicprotectedprivate,因此它们具有缺省访问权限:只能在同一个包中访问。

不能写成:

default class Student {   // 编译错误
}

default 虽然是 Java 关键字,但它有其他用途,例如:

switch (value) {
    default:
        System.out.println("其他情况");
}

以及接口中的默认方法:

interface Animal {
    default void eat() {
        System.out.println("eating");
    }
}

所以更准确的说法是:

Java 的缺省访问权限没有对应的关键字;它通过不写访问修饰符来表示。