35-static关键字详解

static

带static是和类一起加载的,能直接调用

反之需要用new抽取对象,然后再调用

public class Test {

    private static int age;//静态变量
    private int score;     //非静态变量

    private static void method1(){   //静态方法
        System.out.println("1");
    }
    private void method2(){          //非静态方法
        System.out.println("2");
    }

    public static void main(String[] args) {

        System.out.println(Test.age); //带static的可以直接用 类名.属性/方法 名  来使用

        Test test = new Test();
        System.out.println(test.score);    //非静态变量需要new一个这个类的对象,再用 对象名.属性/方法名 来使用

        Test.method1();
        test.method2();
    }
}

代码块

public class Test01 {
    {
        //代码块(普通代码块)
        System.out.println("普通代码块");
    }

    static {
        //静态代码块
        System.out.println("静态代码块");
    }
}    

执行顺序:

​ 静态代码块

​ 普通代码块

​ 构造器

public class Test01 {
    {
        //代码块(普通代码块) 可以用来赋初始值
        System.out.println("普通代码块");
    }

    static {
        //静态代码块
        System.out.println("静态代码块");
    }

    public Test01() {
        System.out.println("构造器");
    }


    public static void main(String[] args) {
        new Test01();
        System.out.println("================");
        new Test01(); //第二次输出,没有静态代码块,static是和类一起加载的,只在第一次执行
    }
/*
静态代码块
普通代码块
构造器
================
普通代码块
构造器
*/

静态导入包

package com.oop.Demo09;

import static java.lang.Math.random;
import static java.lang.Math.PI;

public class Test02 {
    public static void main(String[] args) {
        System.out.println(Math.random());//导入后,可以省略Math.
        System.out.println(PI);
    }
}
posted @ 2023-02-08 15:23  佩德罗帕斯卡  阅读(19)  评论(0)    收藏  举报