Heim> Java> javaLernprogramm> Hauptteil

Java静态块、自由块及构造函数的执行顺序是什么

WBOY
Freigeben: 2023-04-18 19:55:47
nach vorne
1069 Leute haben es durchsucht

静态块格式:
static
{
}
静态块在类被加载的时候执行,又因为加载子类时,会预先加载父类,因此父类中如果有静态块,则最先执行。然后立即执行子类的静态块。
如果一个类中有多个静态块,则按照编码的先后顺序执行。
注:由于类只会被加载一次,因此每个静态块便只会执行一次。
自由块格式:
{
}
自由块在类被实例化时执行。
如果要实例化一个子类,那么他的构造函数会先实例化其父类。因此父类的自由块会先被执行,然后开始构造父类。父类的构造器执行完毕后,操作权返回给子类的构造器,此时开始执行子类的自由块。
然后开始构造子类。

以下为融合了父类静态块、子类静态块,父类自由块、子类自由块,父类构造函数、子类构造函数,this关键字、super关键字的一个例子,感觉很值得分析,值得记录。

[java]view
plaincopy

  1. package com.lsky.test;


  2. public class Father {

  3. private int sum;

  4. //父类中的静态块

  5. static{

  6. System.out.println("2010年新年快乐");

  7. }

  8. public void first(int i){

  9. sum=++i+sum++-1+i--;

  10. System.out.println(sum);

  11. }

  12. //父类无参构造器

  13. public Father(){

  14. System.out.println("美好的一天");

  15. }

  16. //含参数构造器

  17. public Father(String s){

  18. System.out.println("我们是学生");

  19. }

  20. //父类中的自由块

  21. {

  22. System.out.println("菩提本无树,明镜亦非台,本来无一物,何处惹尘埃");

  23. }

  24. }


  25. package com.lsky.test;


  26. public class Son extends Father {

  27. private int sum;

  28. private static Father father;

  29. //子类中含参构造器(含参构造函数)

  30. public Son(Father father){

  31. this();

  32. father.first(8);

  33. }

  34. //子类中无参构造器(无参构造函数)

  35. public Son(){


  36. this.punk(6);

  37. }

  38. public void first(int i){

  39. sum=sum+i++;

  40. System.out.println(sum);

  41. }

  42. //子类中的静态块

  43. static{

  44. Father f=new Son();

  45. f.first(4);

  46. }

  47. int punk(int sum){

  48. sum=sum;

  49. return sum;

  50. }

  51. //子类中的自由块

  52. {

  53. System.out.println("曾经沧海难为水,除却巫山不是云");

  54. }

  55. public static void main(String argsp[]){


  56. Son son=new Son(new Son());


  57. }

  58. }

[java]view
plaincopy

  1. //输出结果为:


  2. 2010年新年快乐

  3. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

  4. 美好的一天

  5. 曾经沧海难为水,除却巫山不是云

  6. 4

  7. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

  8. 美好的一天

  9. 曾经沧海难为水,除却巫山不是云

  10. 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃

  11. 美好的一天

  12. 曾经沧海难为水,除却巫山不是云

  13. 8

Das obige ist der detaillierte Inhalt vonJava静态块、自由块及构造函数的执行顺序是什么. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!