Java 中的修饰符用于修饰类、方法、变量等元素,它们控制了这些元素的访问性、继承性和其他特性。主要的修饰符包括:
1. **访问控制修饰符**:
- **public**: 可以被任何其他类访问。
- **protected**: 可以被同一包内的类及其子类访问。
- **default (no modifier)**: 只能被同一包内的类访问。
- **private**: 只能被同一类的成员访问。
```java
public class Example {
public int publicVar;
protected String protectedVar;
String defaultVar; // 默认访问控制符,同一包内可访问
private boolean privateVar;
// 方法示例
public void publicMethod() {
// 可以被任何类访问
}
protected void protectedMethod() {
// 可以被同一包内及子类访问
}
void defaultMethod() {
// 同一包内可访问
}
private void privateMethod() {
// 只能被同一类内部访问
}
}
```
2. **非访问控制修饰符**:
- **final**: 表示最终状态,不能被继承(类)、不能被覆盖(方法)、不能被修改(变量)。
- **abstract**: 用于抽象类和方法,没有实现,需要子类实现。
- **static**: 表示静态变量或方法,属于类而非实例。
- **synchronized**: 用于多线程并发控制,确保方法或代码块在同一时间只能被一个线程访问。
- **volatile**: 用于多线程编程,确保变量的可见性。
- **transient**: 在序列化时,指示某个变量不需要持久化。
- **native**: 表示方法的实现由本地代码(如C或C++)提供。
- **strictfp**: 确保浮点运算的结果在不同平台上一致。
```java
public abstract class Example {
public static final int MAX_VALUE = 100;
protected transient String data; // 在序列化时会被忽略
private static synchronized void staticMethod() {
// 静态同步方法
}
public abstract void abstractMethod(); // 抽象方法,子类必须实现
}
```
这些修饰符不仅控制了代码的可访问性和行为,还有助于代码的可读性、维护性和安全性。
标签:Java,包内,子类,void,修饰符,访问,public From: https://blog.csdn.net/fan0430/article/details/140286062