最后的pri2 hello2=new pri2()是怎么運行的?
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();
?? ??? ?}
?? ?}
2017-04-21
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“ ? ? ? ??
2017-04-21
Static修飾的類成員,它的使用完全獨立于該類的任何對象。Static塊僅在該類被加載時執行一次。