本文目录导读:

在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(推荐方式)
}
}
注意事项
- 推荐使用类名调用:
ClassName.staticVariable - 静态变量属于类,所有对象共享
- 静态方法中不能直接访问非静态成员
- 静态变量在类加载时初始化,优先于对象创建
- 可以用final修饰静态变量:
public static final String PI = "3.14159";(常量)
通过以上案例,你应该能清楚地了解如何在Java中调用静态变量了,核心原则就是:使用类名直接调用,这样可以清晰地表明这是一个静态变量。
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播