static 关键字

概述

static 关键字用于定义属于类而不是实例的成员,可以在不创建对象的情况下访问。

语法格式

public static int variable;           // 静态变量
public static void method() { }       // 静态方法
static { /* 初始化代码 */ }          // 静态初始化块
public static class InnerClass { }   // 静态内部类

基本用法

静态变量和方法

public class MathUtils {
    // 静态常量
    public static final double PI = 3.14159265359;

    // 静态变量
    private static int calculationCount = 0;

    // 静态方法
    public static double calculateCircleArea(double radius) {
        calculationCount++;
        return PI * radius * radius;
    }

    public static int getCalculationCount() {
        return calculationCount;
    }

    // 静态初始化块
    static {
        System.out.println("MathUtils类被加载");
        calculationCount = 0;
    }
}

public class StaticExample {
    public static void main(String[] args) {
        // 直接通过类名访问静态成员
        System.out.println("PI = " + MathUtils.PI);

        double area = MathUtils.calculateCircleArea(5.0);
        System.out.println("圆面积: " + area);

        System.out.println("计算次数: " + MathUtils.getCalculationCount());
    }
}

静态内部类

public class OuterClass {
    private static String staticField = "静态字段";

    // 静态内部类
    public static class StaticInnerClass {
        public void display() {
            System.out.println("可以访问外部类的静态成员: " + staticField);
            // System.out.println(instanceField); // 错误:不能访问实例成员
        }
    }

    public static void main(String[] args) {
        // 创建静态内部类实例
        OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
        inner.display();
    }
}

最佳实践

  1. 工具类设计

    public class StringUtils {
        private StringUtils() { } // 私有构造器
    
        public static boolean isEmpty(String str) {
            return str == null || str.length() == 0;
        }
    }
    
  2. 单例模式

    public class Singleton {
        private static Singleton instance = new Singleton();
    
        private Singleton() { }
    
        public static Singleton getInstance() {
            return instance;
        }
    }
    

static关键字是Java编程中的重要概念,用于创建类级别的成员和实现特定的设计模式。

powered by Gitbook© 2025 编外计划 | 最后修改: 2025-07-28 16:25:54

results matching ""

    No results matching ""