更新时间:2022-10-27 来源:黑马程序员 浏览量:

静态变量内存分配图
从图3-18可以看出,所有学生对象共享一个名称为schoolName的变量。在一个Java类中,要实现这种功能可以使用static关键字来修饰成员变量,该变量被称作静态变量,它可以所有实例所共享。
静态变量可以使用如下语法来访问:
类名.变量名
了解了静态变量的声明和访问方式后,接下来通过一个案例来实现静态变量内存分配图中所描述的情况,如下例所示。
Example12.java
class Student {
static String schoolName; //声明静态变量schoolName
}
public class Examplel2 {
public static void main(String[] args) {
Student stul =new Student (); //创建第1个学生对象
Student stu2 =new Student (); //创建第2个学生对象
Student.schoolName="清华大学"; //为静态变量赋值
//分别输出两个学生对象的信息
System.out.println("我是"+stul.schoolName+"的学生");
System.out.println("我是"+stu2.schoolName+"的学生");
}
}Student类中定义了一个静态变量schoolName,用于表示学生所在的学校,它被所有的实例对象所共享。由于schoolName是静态变量,因此可以直接使用Student.schoolName的方式进行调用,也可以通过Student的实例对象进行调用,如 stu2.schoolName。第8行代码将变量schoolName赋值为“清华大学”后,学生对象stul和stu2的 schoolName 属性值均为“清华大学”。
需要注意的是static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则编译会报错,例如下面的代码是非法的。
public class Student {
public void study() {
static int num =10; //这行代码是非法的,编译会报错
}
}毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27