跳到主要内容

Java 修饰符

三种修饰符

Java 有三种基本修饰符:

  • public:用于指定类、方法、变量可以被任何类访问(项目级别:不同包之间)
  • protected:用于指定类、方法、变量可以被同一个包中的类以及所有子类访问(包级别:同一个包,不同类之间)
  • private:用于指定类、方法、变量只能被同一个类中的方法访问(类级别:类本身)

示例:

public int a;
protected int b;
private int c;

static 修饰符

static 修饰符是 Java 中的一种修饰符,它可以用来修饰类的成员变量、成员函数和内部类(?)。

static 变量(静态变量)和传统的类属性变量区别:

  • static 修饰的变量是属于整个类所有,而不是某个对象所有
  • static 修饰的变量可以被所有对象所共享,普通的类变量只能被定义该变量的对象共享
  • static 修饰的变量可以直接用类名调用,而普通的类变量则需要通过实例调用

示例:

public class Student {
public static int count = 0;

public Student() {
count++;
}

public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();

System.out.println("Student count: " + Student.count); // => 2
}
}

final 修饰符

final 修饰符是一种 Java 关键字,用于修饰类、变量和方法,用来限定其不能被继承、修改或删除。可以用来保护代码和数据的安全性。

final 修饰符使用场景:

  1. 类:当声明一个类为 final 时,它就成为一个不可变类,不能被其它类继承
  2. 方法:当声明一个方法为 final 时,它就不能被子类重写
  3. 变量:当声明一个变量为 final 时,它就成为一个常量,不能被修改。

示例:

// final 类
public final class MyClass {
// class definition
}

public class MyClass {
// final 方法
public final void doSomething() {
// method body
}
}

public class MyClass {
// final 变量
public final int MAX_VALUE = 100;
public int value;

public MyClass(int value) {
this.value = value;
}

public void increaseValue() {
if (this.value < MAX_VALUE)
this.value++;
}
}