您的位置 首页 技术

java深入学习之static静态代码块

静态代码块 static可以修饰属性、方法、内部类、代码块。 静态代码块在类加载时就调用, 而且只执行一次, 并且优先于各种代码块以及构造函数。 有一个地方的静态代码被使用,那么所…

静态代码块

static可以修饰属性、方法、内部类、代码块。

静态代码块在类加载时就调用, 而且只执行一次, 并且优先于各种代码块以及构造函数。

有一个地方的静态代码被使用,那么所有的静态代码块都会被调用。

相关视频教程推荐:java免费视频教程

示例如下:

父类

public class Human {    static {        System.out.println("2.父类中的静态代码块");    }    public String name;    public Human() {        System.out.println("1.父类中的构造方法");    }    public static void test() {        System.out.println("6.父类中的静态方法");    }}

子类

public class Man extends Human {    static {        System.out.println("4.子类中的静态代码块");    }    public Man() {        System.out.println("3.子类中的构造方法");    }    public static void doo() {        System.out.println("5.子类中的静态方法");    }}

主类

public class Main {    public static void main(String[] args) {        // Human human = new Man(); 输出2 4 1 3                //父类的类名调用父类的方法//Human.test();      //输出2 6   在调用静态代码时,怕需要上面的静态代码块的内容,所以将其链接到内存    与子类无关                //子类的类名调用子类的方法        //Man.doo();              // 输出2  4  5  在调用子类的静态方法时,父类的静态代码块执行,与父类的静态代码块有关                  //子类的类名调用父类的方法         //Man.test();           // 输出  2 6  注意这个能调test不是因为继承,test声明在了human里,子类可以调用父类的方法,        //但是父类不能调用子类的方法  所以在Main中不可直达Man中的的方法        //子类调用了父类的方法,在父类的方法里又引用了子类里的静态方法        //Man.test();    输出  2 6 4 5    }}

静态代码块内容先执行(但只执行一次),接着执行父类构造方法,然后执行子类构造方法。

本文来自java入门程序栏目,欢迎大家来共同交流学习!

以上就是java深入学习之static静态代码块的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/12346.html

为您推荐

返回顶部