> Java > java지도 시간 > Java 정적 블록, 자유 블록 및 생성자의 실행 순서는 무엇입니까?

Java 정적 블록, 자유 블록 및 생성자의 실행 순서는 무엇입니까?

WBOY
풀어 주다: 2023-04-18 19:55:47
앞으로
1156명이 탐색했습니다.

정적 블록 형식:
static
{
}
정적 블록은 클래스가 로드될 때 실행되며 하위 클래스를 로드할 때 상위 클래스가 미리 로드되므로 상위 클래스에 정적 블록이 있으면 먼저 실행됩니다. 그런 다음 하위 클래스의 정적 블록이 즉시 실행됩니다.
클래스에 정적 블록이 여러 개 있는 경우 코딩 순서대로 실행됩니다.
참고: 클래스는 한 번만 로드되므로 각 정적 블록은 한 번만 실행됩니다.
자유 블록 형식:
{
}
자유 블록은 클래스가 인스턴스화될 때 실행됩니다.
하위 클래스를 인스턴스화하려는 경우 해당 생성자는 상위 클래스를 먼저 인스턴스화합니다. 따라서 상위 클래스의 자유 블록이 먼저 실행된 후 상위 클래스의 생성이 시작됩니다. 상위 클래스의 생성자가 실행된 후 하위 클래스의 생성자에게 작업 권한이 반환되고 하위 클래스의 자유 블록이 실행되기 시작합니다.
그런 다음 하위 클래스 구성을 시작하세요.

다음은 상위 클래스 정적 블록, 하위 클래스 정적 블록, 상위 클래스 자유 블록, 하위 클래스 자유 블록, 상위 클래스 생성자, 하위 클래스 생성자, this 키워드, super 키워드의 조합입니다. 분석할 가치가 있다고 느껴지는 예입니다. 그리고 녹음.

[java] 보기
plaincopycpackage com.lsky.test;


  1. Public 클래스 father {

  2. Private into;

  3. // 부모의 정적 블록 {

  4. System.out.println( " 2010년 새해 복 많이 받으세요");

  5. }

  6. public void first(int i){

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

  8. System.out. println(sum)

  9. }

  10. //부모 클래스 매개변수 없는 생성자

  11. public Father(){

  12. System.out .println("Good day")

  13. }

  14. //매개변수가 있는 생성자

  15. public Father(String s){

  16. System.out.println("우리는 학생입니다")

  17. }

  18. // 자유 블록 부모 수업에서

  19. {

  20. System.out.println("Bodhi에는 나무가 없고 거울은 받침대가 없으며 아무것도 없습니다. , 먼지를 일으킬 곳")

  21. }
  22. package com.lsky.test;

  23. public class Son은 아버지를 확장합니다. {
  24. private int sum;

  25. 비공개 정적 아버지 아버지;
  26. //하위 클래스의 매개변수 포함 생성자(매개변수 포함 생성자)
  27. public Son(Father father){
  28. this()
  29. father.first(8)
  30. }
  31. // 서브클래스의 매개변수 없는 생성자(매개변수 없는 생성자)
  32. public Son(){
  33. this.punk(6)
  34. }

  35. public void first(int i){
  36. sum=sum+i++;
  37. System.out.println (sum);
  38. }
  39. //하위 클래스의 정적 블록
  40. static{

  41. Father f=new Son();

  42.  f.first(4);

  43. }

  44. int punk(int sum){

  45. 합계= sum;

  46. return sum;

  47. }

  48. //서브클래스에서 블록 사용 가능

  49. {

  50. System.out.println("한때 물 만들기가 어려웠는데 Wushan 클라우드가 아닙니다");

  51. }

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

  53. Son son=new Son(new Son())


  54. }

  55. }

[java] view
plaincopy

  1. //출력 결과는 다음과 같습니다.


  2. 2010년 새해 복 많이 받으세요

  3. 보리수도 없고 거울도 없고 애초에 아무것도 없습니다. 먼지가 원인

  4. 아름다운 날

  5. 옛날 바다는 물이 너무 어려웠고 오산 외에는 구름이 없었습니다

  6. 4

  7. 보리에는 나무가 없고 거울은 서 있지도 않고 애초에 아무것도 없고 먼지가 어딨어

  8. 멋진 어느날

  9. 예전에는 물 만들기도 어려웠는데 오산 빼고는 구름이 없네

  10. 보리수는 없어 나무, 그리고 거울은 스탠드도 아니고 먼지는 어디에 있습니까?

  11. 아름다운 날

  12. 우산은 구름이 아닌 것 빼고는 바다에서 물을 찾기가 어렵습니다

  13. 8

위 내용은 Java 정적 블록, 자유 블록 및 생성자의 실행 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿