반응형
기본 생성자 역컴파일
클래스를 생성하고 별도의 생성자를 만들지 않으면 컴파일러가 자동으로 기본 생성자를 만들어 냅니다.
실제로 그렇게 동작하는지 클래스 파일을 역컴파일하여 확인하고자 합니다.
※ 기본 생성자(Default Constructor): 리턴타입이 없으며, 메소드의 이름이 클래스의 이름과 같은 형태
[SampleObj.java]
public class SampleObj { }
위의 코드를 저장해서 실행하며 아래와 같은 경로에 .class 파일이 존재합니다.
※ PC마다 경로 상이할 수 있음
C:\Users\hsw\eclipse-workspace\main\bin
명령 프롬프트 창에서 아래 명령어 수행
① cd C:\Users\hsw\eclipse-workspace\main\bin
② javap SampleObj
▶ 기본 생성자가 있는것을 확인할 수 있습니다.
※ javap 명령어 클래스 파일을 원시 코드로 역어셈블해주는 역할
완전한 소스 파일을 구할 수는 없으며, 기본적인 모습을 기계어에서 인간이 볼 수 있는 소스로 변환된 형태
사용자 정의 생성자만 있는 경우
: 사용자 정의 생성자가 명시된 경우는 기본 생성자가 자동으로 생성되지 않습니다.
public class SampleObj {
public SampleObj(int value) { }
public SampleObj(String value) { }
public SampleObj(String value, int idx) { }
}
역컴파일 결과
기본생성자가 자동으로 생성되지 않는 것을 확인할 수 있습니다.
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 우선순위 큐(Priority Queue) 예제 (0) | 2021.02.23 |
---|---|
[Java] [예제] 비만 지수 구하기 (0) | 2021.02.23 |
[Java] 기본 생성자 & 매개변수 생성자 (1) | 2021.02.23 |
[Java] 생성자(Constructor) (0) | 2021.02.23 |
[Java] 객체 프로그래밍이란? (0) | 2021.02.23 |
댓글