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

Java에서 사전 정의된 클래스 이름을 클래스명 또는 변수명으로 사용하는 방법

사전 정의된 클래스 이름을 클래스 이름으로 사용하기

Java에서는 Number, String 등과 같이 JDK 표준 라이브러리에 이미 존재하는 클래스 이름을 사용자가 직접 정의하는 클래스 이름으로 그대로 사용할 수 있습니다. 다음 예제를 통해 확인해 보겠습니다.

예제

public class Number{
    public static void main (String[] args){
        System.out.println("Pre-defined class name can be used as a class name");
    }
}

출력 결과

Pre-defined class name can be used as a class name

위 코드에서 Number 클래스는 프로그램 실행 시 메시지를 출력하는 main 함수를 포함하고 있으며, 이 main 함수는 문자열 배열을 인자로 받습니다.

컴파일러는 사용자가 정의한 클래스를 우선적으로 인식하기 때문에, 표준 라이브러리에 이미 존재하는 클래스와 동일한 이름으로 새 클래스를 선언해도 컴파일 오류가 발생하지 않습니다. 다만 이런 방식은 코드의 가독성을 떨어뜨리고 혼란을 줄 수 있으므로 실무에서는 피하는 것이 좋습니다.

사전 정의된 클래스 이름을 변수 이름으로 사용하기

마찬가지로 사전 정의된 클래스 이름은 변수 이름으로도 활용할 수 있습니다. 다음 예제를 살펴보겠습니다.

예제

public class String{
    public static void main (java.lang.String[] args){
        System.out.println("Pre-defined class name can be used as a variable");
    }
}

출력 결과

Pre-defined class name can be used as a variable

String 클래스 역시 콘솔에 관련 메시지를 출력하는 main 함수를 가지고 있습니다. 여기서 주목해야 할 부분은 main 함수의 매개변수입니다. 일반적인 방식처럼 String[] args로 작성하지 않고, 완전한 패키지 경로인 java.lang.String[] args로 명시적으로 작성했습니다.

그 이유는 현재 클래스의 이름 자체가 String이기 때문입니다. 만약 단순히 String[] args라고 작성하면 컴파일러는 이를 java.lang 패키지의 String이 아닌 사용자가 정의한 String 클래스로 해석하여 오류가 발생합니다. 따라서 이름 충돌을 피하려면 java.lang.String과 같은 전체 한정 이름(fully qualified name)을 사용해야 합니다.