Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 생성자 이름이 클래스 이름과 같아야 하는 이유

Java에서 모든 클래스의 객체는 동일한 new 키워드를 사용하여 생성됩니다. 그렇기 때문에 컴파일러와 JVM은 new 키워드 뒤에 오는 이름을 보고 어떤 클래스의 객체를 생성해야 하는지 정확히 판단할 수 있어야 합니다.

만약 생성자의 이름이 클래스 이름과 다르다면, JVM은 해당 호출이 일반 메서드 호출인지 아니면 객체 생성을 위한 생성자 호출인지 구분할 방법이 없습니다. 따라서 Java 언어 설계 차원에서 생성자의 이름은 반드시 클래스 이름과 동일해야 한다는 규칙이 정해져 있습니다.

예제 코드

class MyConstructor{
    public MyConstructor() {
        System.out.println("생성자 이름은 클래스 이름과 같아야 합니다");
    }
    public static void main(String args[]){
        MyConstructor mc = new MyConstructor();
    }
}

위 프로그램에서 생성자 MyConstructor()의 이름은 클래스 이름인 MyConstructor와 동일합니다. main 메서드에서 new MyConstructor()가 호출되는 순간 객체가 생성되면서 생성자가 자동으로 실행됩니다.

실행 결과

생성자 이름은 클래스 이름과 같아야 합니다

정리

  • 객체 생성은 new 키워드를 통해 이루어지며, 이때 어떤 클래스의 객체를 만들지 식별할 필요가 있습니다.
  • 생성자 이름이 클래스 이름과 같으면 컴파일러가 생성자 호출임을 명확히 인식할 수 있습니다.
  • 반환 타입이 없고 이름이 클래스와 같다는 특징 덕분에 생성자는 일반 메서드와 구분됩니다.