Java静态变量案例怎么调用

wen java案例 31

本文目录导读:

Java静态变量案例怎么调用

  1. 静态变量的定义
  2. 调用静态变量的方式
  3. 完整案例:学生统计
  4. 静态变量的特点
  5. 注意事项

在Java中,静态变量(也称为类变量)可以通过两种方式调用:类名直接调用对象调用(但不推荐),下面是详细的案例说明。

静态变量的定义

public class Student {
    // 静态变量(类变量)
    public static String schoolName = "清华大学";
    public static int studentCount = 0;
    // 实例变量
    private String name;
    private int age;
    // 构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        studentCount++; // 每创建一个对象,学生总数+1
    }
    // 静态方法
    public static void showSchool() {
        System.out.println("学校名称:" + schoolName);
    }
}

调用静态变量的方式

通过类名直接调用(推荐)

public class Test {
    public static void main(String[] args) {
        // 通过类名直接访问静态变量
        System.out.println(Student.schoolName);  // 输出:清华大学
        System.out.println(Student.studentCount); // 输出:0
        // 修改静态变量
        Student.schoolName = "北京大学";
        System.out.println(Student.schoolName);  // 输出:北京大学
    }
}

通过对象调用(不推荐,会有警告)

public class Test {
    public static void main(String[] args) {
        Student stu1 = new Student("张三", 20);
        // 通过对象访问静态变量(不推荐)
        System.out.println(stu1.schoolName);  // 输出:清华大学(有警告)
        System.out.println(stu1.studentCount); // 输出:1
        // 通过类名访问更清晰
        System.out.println(Student.schoolName); // 推荐方式
    }
}

完整案例:学生统计

public class StudentManager {
    // 静态变量
    public static int totalStudents = 0;  // 学生总数
    public static final String SCHOOL = "清华大学";  // 常量
    // 实例变量
    private String name;
    private int id;
    public StudentManager(String name) {
        this.name = name;
        totalStudents++;
        this.id = totalStudents;
    }
    public void showInfo() {
        System.out.println("学号:" + id + ",姓名:" + name + 
                           ",学校:" + SCHOOL);
    }
    // 静态方法
    public static void showTotal() {
        // 访问静态变量
        System.out.println("当前学生总数:" + totalStudents);
        System.out.println("学校名称:" + SCHOOL);
        // System.out.println(name); // 错误!静态方法不能直接访问实例变量
    }
    public static void main(String[] args) {
        // 调用静态方法
        StudentManager.showTotal();  // 输出:当前学生总数:0
        // 创建学生对象
        StudentManager stu1 = new StudentManager("张三");
        StudentManager stu2 = new StudentManager("李四");
        StudentManager stu3 = new StudentManager("王五");
        stu1.showInfo();  // 学号:1,姓名:张三,学校:清华大学
        stu2.showInfo();  // 学号:2,姓名:李四,学校:清华大学
        stu3.showInfo();  // 学号:3,姓名:王五,学校:清华大学
        // 使用类名调用静态变量和方法
        System.out.println("学生总数:" + StudentManager.totalStudents); // 3
        StudentManager.showTotal();  // 当前学生总数:3
    }
}

静态变量的特点

public class StaticFeatures {
    // 静态变量在类加载时初始化
    public static int count = 0;
    // 静态代码块(类加载时执行一次)
    static {
        count = 10;
        System.out.println("静态代码块执行,count = " + count);
    }
    public static void main(String[] args) {
        // 所有对象共享同一个静态变量
        StaticFeatures obj1 = new StaticFeatures();
        StaticFeatures obj2 = new StaticFeatures();
        obj1.count = 100;
        System.out.println(obj1.count);  // 100
        System.out.println(obj2.count);  // 100(共享同一个变量)
        System.out.println(StaticFeatures.count); // 100(推荐方式)
    }
}

注意事项

  1. 推荐使用类名调用ClassName.staticVariable
  2. 静态变量属于类,所有对象共享
  3. 静态方法中不能直接访问非静态成员
  4. 静态变量在类加载时初始化,优先于对象创建
  5. 可以用final修饰静态变量public static final String PI = "3.14159";(常量)

通过以上案例,你应该能清楚地了解如何在Java中调用静态变量了,核心原则就是:使用类名直接调用,这样可以清晰地表明这是一个静态变量

抱歉,评论功能暂时关闭!