1.存储对象个数
案例:某游戏是多人探险的游戏,在游戏的过程中有人会阵亡,当存活的人数不足3人时,屏幕上要进行报警提示。
代码如下:
public class Person {
String name;
static int number=0;
Person(String name){
this.name=name;
System.out.println("创建了"+name);
number++;
}
void die(){
System.out.println(name+"阵亡");
number--;
if(number<3){
System.out.println("警告!不足3人!");
}
}
}
public class Entrance {
public static void main(String[] args) {
Person p1=new Person("张三");
Person p2=new Person("李四");
Person p3=new Person("王五");
Person p4=new Person("牛六");
p3.die();
p4.die();
}
}
结果如下:
D:\Java\bin\java.exe "-javaagent:D:\Jetrains\IntelliJ IDEA 2021.2.1\lib\idea_rt.jar=56776:D:\Jetrains\IntelliJ IDEA 2021.2.1\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\BabyLu\Desktop\学习\java\untitled1\out\production\untitled1 Entrance
创建了张三
创建了李四
创建了王五
创建了牛六
王五阵亡
牛六阵亡
警告!不足3人!
进程已结束,退出代码为 0
2.保存跨对象信息
案例:登陆界面,输入账号和密码登陆成功后可到达聊天界面,那么聊天界面如何知道登陆界面输入的账号呢?
解决思路:
a.定义一个类conf,用静态变量保存登录账号;
b.在登陆界面,如果登录成功,就将账号存入conf.loginAccount;
c.在聊天界面,访问conf.loginAccount,即可得到登录的账号
- 说明:
- 不由static修饰的属性,类可以创建对象,每个对象都有一份自己的属性
- 由static修饰的属性与方法,属于类,且只有一份,直接由类名调用
- 静态成员变量值一旦发生改变,则所有方式访问到的值都发生改变
- 从底层讲,静态变量在类被载入时创建,只要类存在,静态变量就存在;普通变量只有在实例化对象时才能被创建