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

Java에서 클래스 이름과 동일한 메서드 이름을 정의할 수 있을까요?

네, 가능합니다. Java에서는 클래스 이름과 동일한 이름의 메서드를 정의하는 것이 허용됩니다. 이 경우 컴파일 타임이나 런타임에 오류가 발생하지 않습니다. 다만 Java 코딩 표준 관례상 이러한 방식은 권장되지 않습니다. 일반적으로 Java에서는 생성자의 이름과 클래스 이름이 항상 동일하기 때문에, 클래스와 같은 이름의 메서드를 정의하면 코드를 읽는 사람에게 혼란을 줄 수 있습니다.

예제 코드

public class MethodNameTest {
    private String str = "Welcome to TutorialsPoint";
    public void MethodNameTest() { // 클래스 이름과 동일한 메서드 선언
        System.out.println("메서드 이름과 클래스 이름이 같습니다");
    }
    public static void main(String args[]) {
        MethodNameTest test = new MethodNameTest();
        System.out.println(test.str);
        test.MethodNameTest();
    }
}

위 예제에서 볼 수 있듯이, 메서드 이름(MethodNameTest)을 클래스 이름(MethodNameTest)과 동일하게 선언해도 어떠한 오류 없이 성공적으로 컴파일됩니다.

실행 결과

Welcome to TutorialsPoint
메서드 이름과 클래스 이름이 같습니다

주의할 점

클래스 이름과 같은 메서드를 정의하는 것은 문법적으로 문제가 없지만, 다음과 같은 이유로 피하는 것이 좋습니다.

- 가독성 저하: 다른 개발자가 해당 메서드를 생성자로 오인할 수 있습니다.
- 유지보수 어려움: 코드 리뷰나 디버깅 시 혼동을 일으킬 수 있습니다.
- 코딩 컨벤션 위반: 대부분의 Java 코딩 표준에서는 메서드 이름은 소문자로 시작하고, 클래스 이름과 중복되지 않도록 권장합니다.

따라서 실무에서는 메서드 이름이 클래스 이름과 겹치지 않도록 의미 있는 이름을 지정하는 것이 바람직합니다.