Java中,如果使用一个类,要分别开辟栈内存和堆内存,在堆内存中保存对象的属性,每个对象有每个对象自己的属性,如果现在有些属性希望对所有对象进行共享,则就必将其声明为static属性。如果一个类中不想被对象调用,而是由类名称直接调用,则就可以声明为static方法
即:
static既能修饰属性,也能修饰方法
使用static声明属性:
应用场景举例:现假设现有50名高二的学生,一年之后则升为高三学生
String Student{
String name;
int mathScore; // 数学成绩
String grade; // 年级
}
当升为高三学生时,则需要修改50名学生的grade,操作起来比较复杂,500个,5000个学生时,一个一个的修改肯定是不行的,最好的方法就是一次性全部修改,这里就可以把grade变量用static关键字进行声明,将其变为公有属性
class Stu {
String name;
int mathScore;
static String grade = "高二";
public Stu(String name, int mathScore) {
this.name = name;
this.mathScore = mathScore;
}
public void dispaly() {
System.out.println("姓名:" + name
+ ",数学成绩:" + mathScore
+ ",年级:" + grade);
}
};
public class staticDemo {
public static void main(String[] args) {
Stu stu1 = new Stu("卢本伟",90);
Stu stu2 = new Stu("五五开",80);
Stu stu3 = new Stu("周淑怡",70);
System.out.println("----------修改之前----------");
stu1.dispaly();
stu2.dispaly();
stu3.dispaly();
System.out.println("----------修改之后----------");
// stu1.grade = "高三";
// 不报错,但不推荐这么写
Stu.grade = "高三";
stu1.dispaly();
stu2.dispaly();
stu3.dispaly();
}
}
格式:
类名称.static 属性