java 函数访问权限修饰符包括:public、protected、default 和 private。需要遵循以下注意事项:嵌套类仅能访问外部类的私有成员;子类中函数继承父类的访问权限,但不能降低;多态性下子类重写父类函数时访问权限不能更严格;default 修饰符使函数仅在同一包中可见。

Java 函数的访问权限修饰符:使用时的注意事项
前言
访问权限修饰符用于控制 Java 函数对其他类或包的可见性,这对于确保代码的封装性和安全性至关重要。本文将介绍 Java 中函数访问权限修饰符的使用注意事项,并通过实战案例进行说明。
访问权限修饰符
Java 中常用的函数访问权限修饰符包括:
- public: 可以在任何位置访问
- protected: 可以在同一包或其子类中访问
- default (package-private): 仅可以在同一包中访问
- private: 仅可以在定义它们的类中访问
注意事项
在使用访问权限修饰符时,需要遵循以下注意事项:
- 嵌套类: 在嵌套类中定义的函数只能访问其外部类的私有成员。
- 子类: 子类中的函数继承父类的访问权限,但不能降低父类的访问权限。
- 多态性: 子类可以重写父类的函数,但重写函数的访问权限不能比父类函数的访问权限更严格。
- 包可见性: default 修饰符也可以称为包可见性,这意味着函数仅在同一包中的类中可见。
实战案例
演示一个包含两个类的代码示例,说明访问权限修饰符的使用:
// 外部类
public class OuterClass {
private int privateField; // 私有字段
protected int protectedField; // 受保护字段
int defaultField; // 默认字段
public int publicField; // 公共字段
// 私有方法
private void privateMethod() {
System.out.println("私有方法");
}
// 受保护方法
protected void protectedMethod() {
System.out.println("受保护方法");
}
// 默认方法
void defaultMethod() {
System.out.println("默认方法");
}
// 公共方法
public void publicMethod() {
System.out.println("公共方法");
}
}
// 内部类
class InnerClass {
public static void main(String[] args) {
OuterClass outer = new OuterClass();
// 访问内部类中的公共字段
System.out.println(outer.publicField);
// 访问外部类中的默认字段(因为内部类和外部类在同一包中)
System.out.println(outer.defaultField);
// 无法访问外部类中的私有字段
// System.out.println(outer.privateField);
// 无法访问外部类中的受保护字段(因为内部类不是外部类的子类)
// System.out.println(outer.protectedField);
// 无法调用外部类中的私有方法
// outer.privateMethod();
// 可以调用外部类中的受保护方法
outer.protectedMethod();
// 可以调用外部类中的默认方法
outer.defaultMethod();
// 可以调用外部类中的公共方法
outer.publicMethod();
}
}
登录后复制
在这个示例中:
-
OuterClass中的privateField只能在OuterClass中访问。 -
OuterClass中的protectedField可以在OuterClass及其子类中访问。 -
OuterClass中的defaultField可以在同一包中的任何类中访问。 -
OuterClass中的publicField可以从任何地方访问。 -
InnerClass可以访问OuterClass中的公共、受保护和默认成员,但不能访问私有成员。
以上就是Java 函数的访问权限修饰符之使用时的注意事项的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:走不完的路,转转请注明出处:https://www.dingdanghao.com/article/404296.html
