본문 바로가기
프로그래밍 언어/Java

[Java] 역컴파일로 기본 생성자 확인해보기

by 까망 하르방 2021. 2. 23.
반응형

기본 생성자 역컴파일 

클래스를 생성하고 별도의 생성자를 만들지 않으면 컴파일러가 자동으로 기본 생성자를 만들어 냅니다.

실제로 그렇게 동작하는지 클래스 파일을 역컴파일하여 확인하고자 합니다.

※ 기본 생성자(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) { }
}

 

 

역컴파일 결과

기본생성자가 자동으로 생성되지 않는 것을 확인할 수 있습니다.

 

 

반응형

댓글