Java教程

java static静态修饰符

本文主要是介绍java static静态修饰符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java static

静态属性:

package com.yuanyu.Oop;

public class Student{
    private static int age; //静态变量
    private double score; //非静态变量

    public static void main(String[] args) {
        Student s1 = new Student();

        System.out.println(age=10);
        System.out.println(s1.age=11);
        System.out.println(Student.age=12);

        //System.out.println(Student.score=89); //编译报错
        System.out.println(s1.score=90);
        //System.out.println(score=91); //编译报错
    }

}

若是static静态变量推荐使用类名调用变量,可以很清楚看出是个静态变量

静态变量对于这个类而言在内存中只有一个,可以被类中所有的实例共享,常用于多线程

静态方法:

package com.yuanyu.Oop;

public class Student{

    public void run(){ //非静态方法
        go(); //非静态方法可以直接访问类中的静态方法
        System.out.println("run");
    }

    public static void go(){ //静态方法
        System.out.println("go");
    }

    public static void main(String[] args) {
        //run(); //编译报错 静态方法不能直接调用非静态方法
        new Student().run();

        Student.go();
        go();

    }

}

非静态方法可以直接访问类中的静态方法

代码块:

package com.yuanyu.Oop;

public class Student{
    {
        System.out.println("匿名代码块");
    }

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

    public Student() {
        System.out.println("构造方法");
    }

    public static void main(String[] args) {
        Student student1 = new Student();
        System.out.println("================================");
        Student student2 = new Student();

    }
}

运行结果:
image

静态代码块最先执行且执行一次,其次是匿名代码块、构造方法

因此静态代码块和匿名代码块都可以用来赋初始值

静态导入包:

package com.yuanyu.Oop;

import static java.lang.Math.random;

public class Student{

    public static void main(String[] args) {
        System.out.println(Math.random()); //0.35021309558598646
        System.out.println(random()); //0.07537262741719064
    }
}

导入包中方法时加入static修饰,否则会报错
image

image

这篇关于java static静态修饰符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!