-
即用任意一个实例对象改变成员变量值,其他实例对象的成员变量值也会同样改变
?
public class Student {
static String school="CSU";
}
public class Test {
public static void main(String[] args) {
// 通过“类名.变量”名调用静态变量
System.out.println("Student.school:" + Student.school);
// 创建学生对象
Student s1 = new Student();
Student s2 = new Student();
// 输出实例对象静态变量属性
System.out.println("s1.school:" + s1.school + "-----"+"s2.school:" + s2.school);
// 修改其中一个实例对象的静态变量属性
s1.school = "HNU";
// 输出实例对象静态变量属性
System.out.println("s1.school:" + s1.school + "-----"+"s2.school:" + s2.school);
}
}
-
对比
-
不使用static修饰成员变量
-
使用static修饰成员变量
-
2.static修饰成员方法
-
使用static,该静态方法可直接通过 类名.方法名直接调用,不需要创建对象调用(static修饰的成员方法访问权限需要高于private)
-
注意:静态方法只能访问static修饰的成员,即静态成员,因为它们都放在静态存储区
-
举例(定义学生类和测试类)
?
public class Student1 {
static void study() {
System.out.println("学习中");
}
}?
public class Test1 {
public static void main(String[] args) {
Student1.study();
}
?
3.static修饰代码块
-
静态代码块与类同时加载,只执行一次(类只执行一次)
-
举例(定义学生类与测试类)
-
public class Student2 {
static{
System.out.println("静态代码块");
}
public void showName (String name){
System.out.println(name);
}
}?
public class Test2 {
public static void main(String[] args) {
Student2 s1=new Student2();
Student2 s2=new Student2();
s1.showName("张三");
s2.showName("李四");
} -