많은 초보자는 정적 메서드의 사용법을 파악하지 못할 수 있습니다. 여기서는 내 이해를 설명하겠습니다.
정적 메서드 호출에는 클래스 개체 생성이 필요하지 않습니다.
객체를 생성할 필요가 없으므로 정적 메서드에서는 이 키워드를 사용하지 마세요
정적 메서드에서는 정적 멤버 변수와 정적 메서드만 호출할 수 있습니다. 일반 메서드는 개체를 생성하여 호출해야 하기 때문에 정적 메서드와 충돌합니다. 메서드
정적 멤버 변수는 일반 메서드와 정적 메서드에서 호출할 수 있으며 클래스 이름 형태로 직접 호출할 수 있습니다.정적 메서드
정적 코드 블록은 클래스가 로드될 때 실행되며 한 번만 실행됩니다.
이제 이론은 끝났으니 실제 예를 살펴보겠습니다.
class Person{ static{ System.out.println("person static"); } public Person(String str) { System.out.println("person "+str); } } public class Test { Person person = new Person("Test"); public Test() { System.out.println("test constructor"); } static{ System.out.println("test static 1"); } public static void main(String[] args) { new MyClass(); } static{ System.out.println("test static 2"); } } class MyClass extends Test { Person person = new Person("MyClass"); static{ System.out.println("myclass static"); } public MyClass() { System.out.println("myclass constructor"); } }
먼저 그의 출력을 추측한 다음 비교하여 무엇이 잘못되었는지 확인하고 이해를 심화시키세요
test static 1 test static 2 myclass static person static person Test test constructor person MyClass myclass constructor
먼저 테스트 클래스를 로드합니다. 2개의 정적 코드 블록을 포함하고, test static 1, test static 2
순으로 출력합니다. 이때, 새로운 MyClass 클래스가 로드됩니다. MyClass 클래스에도 정적 코드 블록이 있으며 출력은 다음과 같습니다. myclass static
-
MyClass 클래스는 Test 클래스에서 상속되며, Test 클래스가 로드된 경우 정적 코드 블록의 콘텐츠는 로드가 완료되면 Test 클래스가 실행되기 시작합니다. Person person = new Person("Test")을 실행하면 Person 클래스도 로드되지 않습니다. 정적 코드 블록이 있는 경우
person static -
을 출력하여 Person의 생성자를 실행하고
person Test -
를 출력하여 Test를 계속 실행하고 기본 메서드인 new MyClass()를 입력합니다. 그러나 MyClass는 Test에서 상속됩니다. 클래스, 먼저 Test 클래스 생성자를 실행하고
test 생성자 -
를 출력하고 계속해서 MyClass를 실행합니다. Person person = new Person("MyClass"), Person 클래스 생성자를 실행하고
person MyClass -
을 출력합니다. 및 계속 실행 MyClass 출력의 생성자 메소드
myclass 생성자 실행 완료
이를 바탕으로 다음과 같은 실행 순서를 요약했습니다.
정적 코드 블록——> 서브클래스 생성 방법
생성자와 새 객체가 동시에 존재할 경우 새 객체의 생성자가 먼저 실행됩니다. (이때 루프 중첩이 발생하여 메모리 오버플로가 발생하지 않도록 주의하세요)
관련글 :
자바에서 부모클래스와 서브클래스 로딩 순서에 대한 간략한 설명자바의 상속, 서브클래스 상속 여부 상위 클래스 생성자
위 내용은 Java의 정적 키워드, 상위 클래스 및 하위 클래스 로딩 및 실행 순서 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
