函数访问权限决定了哪些类或对象可以访问该函数。java 提供了四种访问权限修饰符:public:任何类或对象都可以访问。protected:仅同一包内的类或子类可以访问。default:仅同一包内的类可以访问。private:仅定义它的类可以访问。
Java 函数和方法的访问权限
在 Java 中,函数(或方法)的访问权限决定了哪些类或对象可以访问该函数。Java 提供了四种访问权限修饰符:
-
public:该函数可被任何类或对象访问。 -
protected:该函数仅可被同一包内的类或子类访问。 -
default(或无修饰符):该函数仅可被同一包内的类访问。 -
private:该函数仅可被定义它的类访问。
实战案例
考虑以下代码:
package com.example.mypackage;
public class MyClass {
public void publicMethod() {
// 任何类或对象都可以调用此方法
}
protect
ed void protectedMethod() {
// 仅同一包内的类或子类可以调用此方法
}
void defaultMethod() {
// 仅同一包内的类可以调用此方法
}
private void privateMethod() {
// 仅 MyClass 类可以调用此方法
}
}访问权限规则
- 子类可以访问其超类的
public和protected方法。 - 其他包中的类只能访问
public方法。 - 在 Java 中,没有
friend访问权限,这意味着即使在同一包中,类也不能访问其他类的私有方法。
选择适当的访问权限
选择正确的访问权限对于实现良好的软件设计和封装至关重要。一般来说:
- 公共方法应该被客户端和其他类广泛使用。
- 保护方法应该在继承层次结构中使用。
- 默认方法适用于包级可见性。
- 私有方法仅用于实现类的内部逻辑。









