Java中static修饰的静态变量、方法及代码块的特性与使用
1. 静态变量
静态变量是属于类的变量,可以通过类名或者对象名来访问。静态变量的特点是在内存中只有一个副本,被类所有的实例共享。定义静态变量的格式为:static dataType variableName。
静态变量的使用示例:
public class Dog {
private String name;
private static int count = 0;
public Dog(String name) {
this.name = name;
count++;
}
public static int getCount() {
return count;
}
}
public class Test {
public static void main(String[] args) {
Dog dog1 = new Dog("Maya");
Dog dog2 = new Dog("Buddy");
System.out.println(Dog.getCount());
}
}
上面的代码中,count
是一个静态变量,表示创建的狗的数量。每当创建一只狗的时候,静态变量count
的值会加1。在main
方法中,通过Dog.getCount()
方法获取创建的狗的数量,打印出来。
2. 静态方法
静态方法属于类的方法,不需要创建类的对象就可以直接调用。静态方法不能访问非静态变量和非静态方法,只能访问静态变量和静态方法。定义静态方法的格式为:static dataType methodName()。
静态方法的使用示例:
public class MathUtil {
public static int max(int a, int b) {
return a > b ? a : b;
}
}
public class Test {
public static void main(String[] args) {
int max = MathUtil.max(5, 7);
System.out.println(max);
}
}
上面的代码中,MathUtil
类中定义了一个静态方法max
,可以获取两个数的最大值。在main
方法中,可以通过MathUtil.max(5, 7)
来获取5和7中的最大值,输出结果为7。
3. 静态代码块
静态代码块是属于类的代码块,用于在类加载的时候执行一些操作。静态代码块只会执行一次,且在类被加载的时候执行。定义静态代码块的格式为:static { //code }。
静态代码块的使用示例:
public class Test {
static {
System.out.println("static code block executed");
}
public static void main(String[] args) {
System.out.println("main method executed");
}
}
上面的代码中,定义了一个静态代码块,在类被加载的时候会执行。在main
方法中,打印出一条信息,表示main
方法被执行。执行程序后,会先打印出静态代码块的信息,再打印出main
方法的信息。
总结
静态变量、静态方法和静态代码块都属于类的成员,是被所有实例共享的,而不是属于某个实例。静态变量和静态方法可以通过类名或者对象名来访问,静态代码块会在类被加载的时候执行。在程序设计中,静态变量、静态方法和静态代码块能够提高程序的性能,也方便我们对类的管理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中static修饰的静态变量、方法及代码块的特性与使用 - Python技术站