static相关用法

static相关用法

1.static修饰成员变量(此变量被类中所有实例共享)

  • 即用任意一个实例对象改变成员变量值,其他实例对象的成员变量值也会同样改变


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);
  }
}

img

  • 对比

    • 不使用static修饰成员变量

    img

    • 使用static修饰成员变量

      img

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();
    }

    img

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("李四");
    }

    img

  •  

posted @ 2021-08-13 21:48  阿拉斯加没有眼泪  阅读(103)  评论(0)    收藏  举报