问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

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

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

提问者:打不死的小杨 2016-03-22 14:57

个回答

  • 慕前端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();
        
    }
    
    }


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

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

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

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

    main函数里面没有建立对象