CodeGym /Java Blog /무작위의 /Java의 정적 클래스란 무엇입니까?
John Squirrels
레벨 41
San Francisco

Java의 정적 클래스란 무엇입니까?

무작위의 그룹에 게시되었습니다
Java는 객체 지향 프로그래밍 언어이며 객체는 Java의 주요 구성 요소입니다. 그러나 Java는 정적 클래스 개념도 제공합니다. 정적 클래스는 정적 메서드, 변수 및 중첩 클래스만 포함할 수 있는 클래스입니다. 이 기사에서는 정적 클래스가 무엇인지, 어떻게 작동하는지, Java로 구현하는지 살펴보겠습니다.

Java의 정적 클래스

Java의 정적 클래스는 인스턴스화할 수 없는 클래스입니다. 즉, 정적 클래스의 개체를 만들 수 없습니다. 클래스 이름 자체를 사용하여 해당 멤버에만 액세스할 수 있습니다. 즉, 정적 클래스는 정적 멤버만 포함하는 클래스입니다. 정적 클래스는 관련된 유틸리티 메서드를 그룹화하는 데 자주 사용됩니다. 예를 들어, Java의 Math 클래스는 최대값 또는 최소값 찾기, 삼각 함수 등과 같은 다양한 수학 연산을 제공하는 정적 클래스입니다. Math.max(5, 10) 처럼 클래스 이름과 도트 연산자를 사용하여 Math 클래스의 메서드에 액세스할 수 있습니다 .

Java의 정적 클래스 예를 살펴보겠습니다. 문자열 반전, 문자열 길이 찾기 등과 같은 다양한 문자열 작업을 수행하는 클래스를 생성한다고 가정해 보겠습니다. 이 예에서는 reverselength 라는 두 가지 정적 메서드가 포함된 StringUtils 라는 정적 클래스를 만들었습니다 . 이러한 메서드는 문자열을 인수로 사용하고 각각 반전된 문자열과 문자열의 길이를 반환합니다. 기본 메소드 에서는 문자열 str을 생성하여 이를 StringUtils 클래스 의 `reverse` 및 `length` 메소드에 전달했습니다 .

public class StringUtils {

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";
                    
        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
프로그램의 출력은 다음과 같습니다:
!dlroW ,olleH 13
다음 업데이트된 예에서는 StringUtils 클래스 내에 Formatter 라는 정적 중첩 클래스를 추가했습니다 . 이 정적 중첩 클래스에는 문자열을 가져와 대문자 버전을 반환하는 format 이라는 정적 메서드도 포함되어 있습니다 . 기본 메서드 에서는 정적 중첩 클래스 Formatter를 사용하여 문자열 str의 형식을 지정 하고 이를 콘솔에 인쇄했습니다. 또한 StringUtils 클래스의 reverselength 메서드를 호출하여 문자열을 반전하고 길이를 각각 알아냈습니다.

public class StringUtils {

    // nested Static class
    public static class Formatter {
        public static String format(String str) {
            return str.toUpperCase();
        }
    }

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";
        
        // Using static class
        String formattedStr = StringUtils.Formatter.format(str);
        System.out.println(formattedStr);
        
        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
프로그램의 출력은 다음과 같습니다:
안녕하세요, 세계! !dlroW ,olleH 13
보시다시피 Java의 정적 클래스에는 관련 기능을 함께 그룹화하는 데 사용할 수 있는 정적 중첩 클래스가 포함될 수도 있습니다.

결론

결론적으로 Java의 정적 클래스는 정적 메서드, 변수 및 중첩 클래스만 포함할 수 있는 클래스입니다. 정적 클래스의 개체를 만들 수 없으며 클래스 이름 자체를 사용하여 해당 멤버에만 액세스할 수 있습니다. 정적 클래스는 관련된 유틸리티 메서드를 그룹화하는 데 자주 사용됩니다. 위의 예에서는 정적 클래스를 생성하고 이를 사용하여 다양한 문자열 작업을 수행하는 방법을 살펴보았습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION