修饰符(访问、static、final)
访问修饰符
现在,让我们来了解main方法前面的 public 关键字。
public static void main(String[] args)
public 是一个访问修饰符,它被用来设置访问级别。在 Java 中,可以使用访问修饰符来保护对类、变量、方法的访问。
Java 支持 4 种不同的访问权限。
default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。
下面是一个例子:
public class Dog {
private String name;
private int age;
private String color;
public void barking() {
System.out.println("Woof-Woof");
}
}
注意: private 和 protected 修饰符不能修饰类(外部类)。
static 修饰符
静态变量
当你声明一个变量或方法为静态时,它属于这个类,而不是一个特定的实例。
不管你创建了该类的多个对象,或者如果你不创建任何对象, 有且只有一个静态成员的实例存在。
该静态成员将被所有对象共享。
static 关键字用来声明独立于对象的静态变量。
下面是一个例子:
public class Counter {
public static int numCount = 0;
Counter() {
numCount++;
}
}
numCount 变量将被该类的所有对象共享。
现在,我们可以在main中创建Counter类的对象,并访问静态变量。
public class MyJavaClass {
public static void main(String[] args) {
Counter c1 = new Counter();
Counter c2 = new Counter();
System.out.println(Counter.numCount);
}
}
//输出 "2"
上面代码的输出结果是2,因为numCount变量是静态的,每次创建一个Counter类的新对象时都会增加1,而在代码中,我们创建了2个对象。
你也可以使用该类的任何对象(如c1.numCount)来访问静态变量。
final修饰符
使用 final 关键字标记一个常量,常量只能被赋值一次。
final 修饰符通常和 static 修饰符一起使用来创建类常量。
下面是一个例子:
class MyJavaClass {
public static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
PI 现在是一个常量。任何为其赋值的尝试都会输出错误。
提示:方法和类也可以标记为 final,这样做可以限制方法,使其不能被重写,并且不能使其成为子类。在后面的章节中,我们将进一步的介绍有关知识。