在Java中,修饰符(Modifiers)用于修饰类、变量、方法等元素,以控制其访问性、继承性、多态性和其他一些特性。Java中的修饰符分为两大类:访问修饰符(Access Modifiers)和非访问修饰符(Non-access Modifiers)。

1. 访问修饰符(Access Modifiers):

这些修饰符定义了类、变量或方法的可访问性。

  •  public: 可以被任何类访问。

  •  protected: 可以被同一包内的类和所有子类访问。

  •  default (no modifier): 在同一包内可见,不使用任何修饰符。不同包的类无法访问。

  •  private: 在同一类内可见。

public class MyClass {
    public int publicVar;
    protected int protectedVar;
    int defaultVar; // 默认为包内可见
    private int privateVar;
}

2. 非访问修饰符(Non-access Modifiers):

这些修饰符包括 final, static, abstract, synchronized, volatile 等,用于控制其他方面的类、变量或方法的行为。

  •  final: 用于修饰类、变量或方法,表示它们是最终的,不可被继承、修改或重写。

  •  static: 表示成员(变量或方法)属于类而不是实例,可以直接通过类名访问。

  •  abstract: 用于类和方法。抽象类不能被实例化,抽象方法必须被子类实现。

  •  synchronized: 用于方法或代码块,确保在同一时间只有一个线程可以访问。

  •  volatile: 用于变量,表示它可能被多个线程同时访问,确保可见性但不保证原子性。

public final class MyFinalClass {
    static int staticVar;

    abstract class MyAbstractClass {
        abstract void myAbstractMethod();
    }

    synchronized void mySynchronizedMethod() {
        // 线程安全的代码
    }

    volatile int myVolatileVar;
}

这只是一些常见的修饰符,Java中还有其他一些修饰符,它们用于更特殊的情况。选择合适的修饰符取决于你的设计需求。


转载请注明出处:http://www.zyzy.cn/article/detail/408/Java