Java的static关键字(三种常见用法笔记)

static关键字可以用来修饰类的成员,例如:成员变量,方法,代码块。

  1. 静态变量

在一个java类中可以使用static关键字修饰成员变量,该变量被称为静态变量。静态变量是被所用示列共享的,可以通过"类名.变量名"来访问。

实例:

public class Student {
    
    
    static String schoolName;//静态变量
    String name;//成员变量
    public void print(){
    
    
        System.out.println("我的名字叫:" + name + ",学校是" + schoolName);
    }
    public static void main(String[] args) {
    
    
        //实例化student1,student2两个对象
        Student student1 = new Student();
        Student student2 = new Student();
        student1.name = "张小明";
        student2.name = "张小张";
        //通过类名.变量名赋值静态变量
        Student.schoolName = "北京大学";
        student1.print();
        student2.print();
    }
}

运行结果:
在这里插入图片描述
从结果可以看出来静态变量只赋值一次被两个实例对象共享该变量。这是因为静态变量在内存中有切只有一份。注意:static关键字只能修饰成员变量不能修饰局部变量。

public class Student {
    
    
    static String schoolName;//静态变量
    String name;//成员变量
    public void print(){
    
    
        static int age = 10;//编译会报错
        System.out.println("我的名字叫:" + name + ",学校是" + schoolName);
    }
  1. 静态方法

我们在类中定义方法时,在方法前面使用static关键字修饰,我们称这种方法为静态方法。静态方法的调用是不需要对象的,调用方式是"类名.方法名"。

实例:

public class Example01 {
    
    
    public static void main(String[] args) {
    
    
        Person.print();//通过类名.方法名调用静态方法
    }
}
class Person{
    
    
    //定义一个静态方法
    public static void print(){
    
    
        System.out.println("我是静态方法.....");
    }
}

注意:在一个静态方法中只能访问被static修饰的成员,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。

  1. 静态代码块

在java中被大括号围起来的代码就是被称作为代码块。用static关键字修饰的代码块称为静态代码块。当类在加载的时候,静态代码块就会执行,由于类只加载一次,因此静态代码块只会执行一次。

实例:

public class Example02 {
    
    
    public static void main(String[] args) {
    
    
        //创建person1,person2两个对象
        Person2 person1 = new Person2();
        Person2 person2 = new Person2();
    }
    //静态代码块
    static {
    
    
        System.out.println("测试静态代码块执行了......");
    }
}
class Person2{
    
    
    static String name;
    //静态代码块
    static {
    
    
       name = "张小张";
       System.out.println("Person类中的代码块执行了......");
    }
}

运行结果:
在这里插入图片描述
加油吧!!!

猜你喜欢

转载自blog.csdn.net/qq_42494654/article/details/109191929