为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA之——static静态代码块

标签:
Java

静态代码块

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

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

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

下面通过实例理解一下

父类

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
    }}

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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消