为什么只执行了静态初始化代码块?没有执行非静态初始化代码块?

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

打不死的小杨

2016-03-22 14:57

package newprac;

public class Static {
String match;//声明String型变量name
String time;//声明char型变量sex
static String score;//声明整型变量age
//通过构造方法赋值变量name
public Static(){
 match = "football match";
 System.out.println("比赛"+match);
}
{
 time = "02:00";
 System.out.println("时间"+time);
}
static{
 score = "2:1";
 System.out.println("比分"+score);
}
public static void main(String[] args){
}
}

输出结果:

比分2:1

写回答 关注

3回答

  • 慕前端1869866
    2016-03-22 15:29:56
    已采纳
    public class Static {
        String match;//声明String型变量name
        String time;//声明char型变量sex
        static String score;//声明整型变量age
        //通过构造方法赋值变量name
        public void Static(){
        match = "football match";
        System.out.println("比赛"+match);
        }
        {
        time = "02:00";
        System.out.println("时间"+time);
        }
        static{
        score = "2:1";
        System.out.println("比分"+score);
    }   
    public static void main(String[] args){
       
        Static st = new Static();
        st.Static();
        
    }
    
    }


    打不死的小杨 回复慕前端186...

    好的,非常感谢!

    2016-03-23 10:28:03

    共 3 条回复 >

  • amorlova
    2016-03-22 15:42:06

    在main函数中  构建一个方法   Static bf=new Static();

    然后调用它就可以了                    bf.Static();

  • Allenyep
    2016-03-22 15:27:42

    main函数里面没有建立对象

    打不死的小杨

    但是为什么同样是初始化块,静态初始化块static{}就不需要在main函数里使用构造方法创建对象,而可以直接输出结果?是因为静态初始化块和静态方法一样,都不需要通过对象就可以直接访问吗?

    2016-03-22 23:17:00

    共 2 条回复 >

Java入门第二季 升级版

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

530646 学习 · 6091 问题

查看课程

相似问题