static关键字详解

static关键字

static 静态方法

//static  静态方法
public class Student {
    private static int age;//静态的变量  多线程!
    private double score;//非静态的变量

    public void run() {//非静态方法可以调用静态方法里的所有东西
        go();
    }

    public static void go() {//静态方法可以调用静态方法里的所有东西,
        //静态方法 不可以调用非静态变量及方法,如要调用,须先实例化对象进行调用
    }

    public static void main(String[] args) {//在一个类中,调用方法与静态方法的方式
        new Student().run();//对象.方法
        Student.go();//类名.方法
        go();//方法
        System.out.println(age);
        System.out.println(new Student().score);//静态方法调用非静态变量,需要先实例化对象
    }
}

静态代码块

//静态代码块
public class Person {
    //2:赋初值~
    {
        //代码块(匿名代码块)
        //没有名字,程序不会主动调用这些模块
        //匿名代码块:创建对象时就自动创建了,而且在构造器之前
        System.out.println("匿名代码块");
    }
    //1 : 只执行一次~
    static {
        //静态代码块
        //可以在里面加载一些初始化的数据
        //静态代码块:类一加载就直接执行,永久只执行一次
        System.out.println("静态代码块");
    }
    //3
    public Person(){
        System.out.println("构造方法");
    }
    public static void main(String[] args) {
        Person person1 = new Person();
        System.out.println("=================");
        Person person2 = new Person();
    }

}

静态导入包

//静态导入包~
import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Test {
    public static void main(String[] args) {
    	//导入了包,可以直接调用
        System.out.println(random());
        System.out.println(PI);
    }
    /*
    final 通过final修饰的类不能被继承,就没有子类
     */
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页