**Static关键字**

**在定义一个类的时候,只是描述事物的属性和行为,并没有产生具体的数据。只有通过new关键字具体实例化对象后,系统才会为为每个对象分配储存空间,储存数据。**

 **静态变量**

被static 修饰的成员变量,该变量称为静态变量,它可以被所有实例所共享。

定义

public class C2 {
    static String name;//定义一个静态变量
}
public class C3 {
    public static void main(String[] args) {
        C2 a = new C2();
        C2 b = new C2();
        C2.name = "河南";

        System.out.println(a.name);
        System.out.println(b.name);

    }
}

C2中定义了一个静态变量name,它被所有实例所共享。

 

**static关键字只能修饰成员变量****,**不能修饰局部变量****

静态方法

如果想要使用类中的某个成员方法,先需要将这个类实例化,而在实际开发的过程中,开发人员希望不实例化对象就能调用某个方法,这种情况就叫静态方法。

静态方法的定义

在方法前面加上一个static关键字就行

在使用时,静态方法可以通过一下两种方式访问。

类名.方法

实例对象名.方法

public class C4 {
    public static void main(String[] args) {
        //类名.方法
        C3.say();
        //实例化对象
        /*
        C3 c3 = new C3();
        c3.say();
        
         */
    }
}

**静态代码块**

在java类中,用{}一对大括号围起来的若干行代码被称为代码块,用static修饰的代码块叫静态代码块

static{

代码

}

当类加载时,静态代码块会执行,由于类只加载一次,因此静态代码块也执行一次

通常使用静态代码块为类的成员变量进行初始化

public class C4 {
    static{
        System.out.println("执行了C4静态代码块");
    }
}
public class C5 {
    static{
        System.out.println("执行了测试类的静态代码块");
    }

    public static void main(String[] args) {
        //实例化两个C4对象
        C4 a = new C4();
        C4 b = new C4();
    }
}

2021-03-12 17:27:36

posted @ 2021-03-12 17:28  域明夜  阅读(103)  评论(0)    收藏  举报