最后的pri2 hello2=new pri2()是怎么运行的?

来源:8-10 Java 中的 static 使用之静态初始化块

Chen十八

2017-04-21 22:31

package com.imooc;

public class pri2{
    int num1;
    int num2;
    static int num3;
    public pri2(){
        num1=91;
        System.out.println("通过构造方法为变量num1赋值");
        }
        {
            num2=74;
            System.out.println("通过初始化模块为num2赋值");
        }
        static{
            num3=83;
            System.out.println("通过静态初始化模块为怒目赋值");
        }
        public static void main(String[] args) {
            pri2 hello=new pri2();
            System.out.println("num1:"+hello.num1);
            System.out.println("num2:"+hello.num2);
            System.out.println("num3:"+num3);
            pri2 hello2=new pri2();
        }
    }

写回答 关注

2回答

  • lizaizhizhu
    2017-04-21 23:29:40
    已采纳

    pri2 hello=new pri2();
                System.out.println("num1:"+hello.num1);
                System.out.println("num2:"+hello.num2);
                System.out.println("num3:"+num3);
                pri2 hello2=new pri2();

    这些代码等同于

    pri2 hello=new pri2();

     pri2 hello2=new pri2();

                System.out.println("num1:"+hello.num1);
                System.out.println("num2:"+hello.num2);
                System.out.println("num3:"+num3);

    num3属于静态类只能被执行一次,所以执行结果缺少“”通过静态初始化块初始化  num3“         

  • Hibiko
    2017-04-21 22:54:45

    Static修饰的类成员,它的使用完全独立于该类的任何对象。Static块仅在该类被加载时执行一次。

    Chen十八

    非常感谢!

    2017-04-22 22:36:01

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530556 学习 · 6091 问题

查看课程

相似问题