다음은 예시로 설명됩니다.
부모 클래스
공개 수업 아버지 {
정적{//정적 블록
System.out.println("아버지의 STATIC 사용 가능 블록 실행 중");
}
{//비정적 블록
System.out.println("아버지의 자유 블록 실행 중");
}
공개 아버지(){
System.out.println("아버지의 생성자가 실행 중입니다.");
}
}
아강
{//비정적 블록
System.out.println("아들의 프리블록 실행 중");
}
공개 아들() {
// TODO 자동 생성 생성자 스텁
System.out.println("아들의 생성자가 실행 중입니다.");
}
}
주요 함수가 위치한 클래스
공개 수업 테스트{
공개 정적 무효 메인(String[] args) {
클래스 f;
노력하다 {
System.out.println("---------아버지를 로드하기 전---------");
f=Class.forName("freeblock.father");
System.out.println("---------애프터로드 아버지---------");
System.out.println("---------초기 아버지 객체 이전-------");
f.newInstance();
System.out.println("---------초기 아버지 객체 이후-------");
} 잡기(ClassNotFoundException e) {
e.printStackTrace();
} catch(InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
클래스;
노력하다 {
System.out.println("-------아들 로드 전-------");
s=Class.forName("freeblock.son");
System.out.println("---------애프터로드 아들---------");
System.out.println("---------초기 아들 개체 이전---------");
s.newInstance();
System.out.println("---------초기 아들 개체 이후----------");
} 잡기(ClassNotFoundException e) {
e.printStackTrace();
} catch(InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
실행 결과:
--------로드파더 이전-------
아버지의 정적 자유 블록런
--------loadfather 이후---------
--------초기 fatherobject 이전-------
아버지의 자유 블록 달리기
아버지의 생성자가 실행 중입니다.
--------초기 fatherobject 이후-------
-------로드 전 --------
아들의 정적 프리 블록 실행 중
---------로드 후 아들-------
--------초기 sonobject 이전---------
아버지의 자유 블록 달리기
아버지의 생성자가 실행 중입니다.
아들의 프리 블록 런닝
아들의 생성자가 실행 중입니다.
---------초기 아들 객체 이후----------