static变量的作用
(1)能被类的所有实例共享,可作为实例之间进行交流的共享数据。
(2)如果类的所有实例都包含一个相同的常量属性,可把这个属性定义为 静态 常量类型,从而节省内存空间。
用法示例
下面模拟实现选民投票过程:一群选民进行投票,每个选民只允许投一次票,并且当投票总数达到100时,就停止投票。
选民类(Voter.java):
package com.kgc.vote;
/*
* 模拟实现选民投票过程:一群选民进行投票,每个选民只允许投一次票,并且当投票总数达到100时,就停止投票。
* */
//选民类
//投票总数,所有选民都会改变的同一个数据。 static
//100,最大投票数,适用于所有选民。 static final
public class Voter {
//投票总数,所有选民都会改变的同一个数据。 static
private static int count;
//100,最大投票数,适用于所有选民。 static final
private static final int MAX_COUNT = 100;
private String name; //姓名
public Voter(){} //无参的构造方法
public Voter(String name){ //带参的构造方法
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
//投票
public void voteFor(){
if(count == MAX_COUNT){
System.out.println("投票活动已经结束!");
return; //结束掉当前方法
}else{
count++;
System.out.println(this.name + ",感谢您投票!");
}
}
}
测试类(TestVoter.java):
package com.kgc.vote;
//测试选民投票
public class TestVoter {
public static void main(String[] args){
//下面我们用的Voter.java中的带参的构造方法
Voter zhang = new Voter("zhangsan");
zhang.voteFor();
Voter li = new Voter("lisi");
li.voteFor();
Voter wang = new Voter("wangwu");
wang.voteFor();
for(int i = 1; i <= 97; i++){
Voter v = new Voter("v" + i);
v.voteFor();
}
Voter v101 = new Voter("v101");
v101.voteFor();
}
}