本文来介绍static关键字,在Java中用static关键字的方法,就叫静态方法,静态方法只能被类本身调用,不能被类的实例对象调用(会出现警告,类型不匹配),而没有static关键字的方法,在类中叫实例方法,任何一个实例对象都能调用实例方法。同样,类变量(静态变量)也和方法类似。
这篇我们再介绍一个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的相关代码:
[java] view plain copy
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,可以发现,两个实例对象共享一个静态变量的值。前面两个打印语句是实例对象调用实例方法,第三个打印语句是类调用静态变量。