这篇我们再介绍一个static使用的例子。需要两个文件,一个Student.java,一个MyClass.java。
1. Student.java的代码如下
package Lessons;
public class Student {
String name;
int age;
static int NoOfStudents = 0;
Student(){
NoOfStudents++;
}
public int getNoOfStudents(){
return NoOfStudents;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
上面写了三个成员变量,一个静态变量,两个普通成员变量。还写了一个构造函数,构造函数内部,使得学生学号这个变量自动加1,如果被调用一次。还写了一个实例方法,用来获取学号的最新值。2. MyClass.java的相关代码
package Lessons;
public class MyClass {
public static void main(String[] args) {
Student Anthony = new Student();
System.out.println(Anthony.getNoOfStudents());
Student Tom = new Student();
System.out.println(Tom.getNoOfStudents());
System.out.println(Student.NoOfStudents);
}
}
测试显示 1,2, 2,可以发现,两个实例对象共享一个静态变量的值。前面两个打印语句是实例对象调用实例方法,第三个打印语句是类调用静态变量。