日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 实例变量初始化_java学习之实例变量初始化

發(fā)布時間:2025/3/21 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 实例变量初始化_java学习之实例变量初始化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實例變量的初始化方法

第一種:通過構(gòu)造函數(shù)進(jìn)行初始化。

第二種:通過聲明實例字段初始化。

第三種:通過對象代碼塊初始化。

通過構(gòu)造函數(shù)進(jìn)行初始化方法

通過構(gòu)造函數(shù)進(jìn)行對象初始化,必須在類中聲明一個帶參數(shù)的構(gòu)造函數(shù)。從而通過類創(chuàng)建實例的同時對實例變量進(jìn)行初始化。注:如果沒有聲明帶參數(shù)的構(gòu)造函數(shù),調(diào)用默認(rèn)構(gòu)造函數(shù),默認(rèn)構(gòu)造函數(shù)也對實例變量進(jìn)行了默認(rèn)初始化。例如:

1 packagecom.java.test;2

3

4

5 classProduct {6 private intid;7 privateString name;8

9 publicProduct() {10

11 }12

13 public Product(intid, String name) {14 this.id =id;15 this.name =name;16 }17 publicString toString()18 {19 return id+","+name;20 }21

22 public voidprint()23 {24 System.out.println(toString());25 }26 }27

28 public classTestProduct29 {30 public static voidmain(String[]args)31 {32 Product c=newProduct();33 c.print();34 //結(jié)果是0,null

35 Product s=new Product(10,"apple");36 s.print();37 //結(jié)果是10,apple

38

39 }40 }

通過聲明實例字段進(jìn)行初始化方法

通過實例變量聲明實例變量就是在創(chuàng)建類的時候,對實例變量進(jìn)行初始化。例如:

1 classSomeClass2 {3 static booleanb;4 static byteby;5 static charc;6 static doubled;7 static floatf;8 static inti;9 static longl;10 static shorts;11 staticString st;12 }

初始化結(jié)果為

false

0\u00000.0

0.0

0

0

0

null

通過對象代碼塊進(jìn)行初始化方法

對象代碼塊初始化是在類中聲明代碼塊來進(jìn)行聲明實例變量。對象代碼塊的執(zhí)行是在對象執(zhí)行構(gòu)造函數(shù)前執(zhí)行。對象代碼塊前沒有static關(guān)鍵字,加static關(guān)鍵字就變?yōu)轭惔a塊。下面通過一個例子來說明:

1 packagetest;2

3

4

5 classProduct {6 private intid;7 privateString name;8

9 publicProduct() {10

11 }12

13 public Product(intid, String name) {14 this.id =id;15 this.name =name;16 }17 publicString toString()18 {19 return id+","+name;20 }21 {

22 name="Sharplee";

23 }24 public voidprint()25 {26 System.out.println(toString());27 }28

29 {

30 System.out.println("id is "+id);

31 System.out.println("name is "+name);

32 }33

34 }35

36 public classTestProduct37 {38 public static voidmain(String[]args)39 {40 Product c=newProduct();//id is0 name isSharplee41 c.print();//0,Sharplee42

43 Product s=new Product(10,"apple");//id is0 name isSharplee44 s.print();//10,apple45

46

47 }48 }

通過該代碼能夠看出代碼塊執(zhí)行也是從上到下的順序,并且代碼塊執(zhí)行是在構(gòu)造函數(shù)之前。代碼塊的出現(xiàn),是便于匿名類來使用的。匿名類是不創(chuàng)建構(gòu)造函數(shù)的。因此在初始化變量的時候,可以使用代碼塊。

類代碼塊

類代碼塊就是在加載類的時候進(jìn)行初始化。例如:

1 packagetest;2

3

4

5 classProduct {6 private static intprice;7 private intid;8 privateString name;9

10 publicProduct() {11

12 }13 static

14 {15 price=100;16 System.out.println("the price is:"+price);17 }18 public Product(int id, String name,intprice) {19 this.id =id;20 this.name =name;21 this.price=price;22 }23 publicString toString()24 {25 return id+","+name+","+price;26 }27 {28 name="Sharplee";29 }30 public voidprint()31 {32 System.out.println(toString());33 }34

35 {36 System.out.println("id is "+id);37 System.out.println("name is "+name);38 System.out.println(price);39 }40

41 }42

43 public classTestProduct44 {45 public static voidmain(String[]args)46 {47 Product c=newProduct();48 c.print();49

50 Product s=new Product(10,"apple",300);51 s.print();52

53

54

55 }56 }

類代碼塊以及塊代碼塊的區(qū)別

類代碼塊無論創(chuàng)建多少個對象都只初始化一次,而對象代碼塊在創(chuàng)建的對象的時候都執(zhí)行。

類代碼塊初始化必須在前面加關(guān)鍵字static,而對象代碼塊則不用加。

類代碼塊只能使用類變量進(jìn)行初始化以及在代碼塊中聲明變量,而對象代碼塊則沒有限制。

1 packagetest;2

3

4

5 classProduct {6 private static intprice;7 private intid;8 privateString name;9

10 publicProduct() {11

12 }13 static

14 {15 、16 price=100;17 System.out.println("the price is:"+price);18 }19 static

20 {21 price++;22 }23

24 public Product(int id, String name,intprice) {25 this.id =id;26 this.name =name;27 this.price=price;28 }29 publicString toString()30 {31 return id+","+name+","+price;32 }33 {34 name="Sharplee";35 }36 public voidprint()37 {38 System.out.println(toString());39 }40

41 {42 System.out.println("id is "+id);43 System.out.println("name is "+name);44 System.out.println(price);45 }46

47 }48

49 public classTestProduct50 {51 public static voidmain(String[]args)52 {53 Product p=null;54 Product t=newProduct();55 Product c=newProduct();56

57

58 }59 }

View Code

1 packagetest;2

3

4

5 classProduct {6 private static intprice;7 private intid;8 privateString name;9

10 publicProduct() {11

12 }13 static

14 {15 int ss=10;16 price=100;17 System.out.println("the price is:"+price);18 }19

20 {21 price++;22 }23

24 public Product(int id, String name,intprice) {25 this.id =id;26 this.name =name;27 this.price=price;28 }29 publicString toString()30 {31 return id+","+name+","+price;32 }33 {34 name="Sharplee";35 }36 public voidprint()37 {38 System.out.println(toString());39 }40

41 {42 System.out.println("id is "+id);43 System.out.println("name is "+name);44 System.out.println(price);45 }46

47 }48

49 public classTestProduct50 {51 public static voidmain(String[]args)52 {53 Product p=null;54 Product t=newProduct();55 Product c=newProduct();56

57

58 }59 }

View Code

對象創(chuàng)建的執(zhí)行順序

總結(jié):對象創(chuàng)建首先進(jìn)行類實例變量以及類代碼塊的初始化。接著是類的父類的對象代碼塊執(zhí)行,類的父類構(gòu)造函數(shù)執(zhí)行,最后執(zhí)行類中代碼塊以及類的構(gòu)造函數(shù)。

總結(jié)

以上是生活随笔為你收集整理的java 实例变量初始化_java学习之实例变量初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。