Java 修饰符

发布于:2024-07-13 ⋅ 阅读:(131) ⋅ 点赞:(0)

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();  // 抽象方法,子类必须实现
   }
   ```

这些修饰符不仅控制了代码的可访问性和行为,还有助于代码的可读性、维护性和安全性。


网站公告

今日签到

点亮在社区的每一天
去签到