修饰符

修饰符用来定义类、方法或属性的可见性、访问权限和行为。

修饰符主要分为以下两类:

  • 访问修饰符

  • 非访问修饰符

访问修饰符(权限修饰符)

在 Java 中,可以使用访问修饰符来控制类、属性、方法和构造方法的访问。

  • default(package-private):如果没有指定访问修饰符,则默认为访问级别,在同一包内可见。

  • private:私有修饰符,只能在当前类中访问。其他类无法直接访问。

  • public:公共修饰符,表示对所有类可见。可以在任何地方访问。

  • protected:受保护修饰符,表示可以在当前类、同一包内的其他类以及该类的子类中访问。其他包中的类无法直接访问。

修饰符
当前类
同一包内
子孙类(同一包)
子孙类(不同包)
其他包

public

Y

Y

Y

Y

Y

protected

Y

Y

Y

Y/N

N

default

Y

Y

Y

N

N

private

Y

N

N

N

N

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public void sayHello() {
        System.out.println("Hello, my name is " + name + " and I'm " + age + " years old.");
    }
}

非访问修饰符

  • static:静态修饰符,用来修饰方法或类变量。

  • final:最终修饰符,用来修饰类、方法和属性,final修饰的类不能被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,不可修改。

  • abstract:抽象修饰符,用来创建抽象类和抽象方法。

  • synchronized:一次只能有一个线程访问该方法或代码块。

  • volatile:变量被多个线程访问,其值应始终从主内存中读取。

  • transient:对象转换为字节流时,该变量不会被序列化。

最后更新于

这有帮助吗?