Java는 객체 지향 프로그래밍 언어이며 객체는 Java의 주요 구성 요소입니다. 그러나 Java는 정적 클래스 개념도 제공합니다. 정적 클래스는 정적 메서드, 변수 및 중첩 클래스만 포함할 수 있는 클래스입니다. 이 기사에서는 정적 클래스가 무엇인지, 어떻게 작동하는지, Java로 구현하는지 살펴보겠습니다.
Java의 정적 클래스
Java의 정적 클래스는 인스턴스화할 수 없는 클래스입니다. 즉, 정적 클래스의 개체를 만들 수 없습니다. 클래스 이름 자체를 사용하여 해당 멤버에만 액세스할 수 있습니다. 즉, 정적 클래스는 정적 멤버만 포함하는 클래스입니다. 정적 클래스는 관련된 유틸리티 메서드를 그룹화하는 데 자주 사용됩니다. 예를 들어, Java의 Math 클래스는 최대값 또는 최소값 찾기, 삼각 함수 등과 같은 다양한 수학 연산을 제공하는 정적 클래스입니다. Math.max(5, 10) 처럼 클래스 이름과 도트 연산자를 사용하여 Math 클래스의 메서드에 액세스할 수 있습니다 .예
Java의 정적 클래스 예를 살펴보겠습니다. 문자열 반전, 문자열 길이 찾기 등과 같은 다양한 문자열 작업을 수행하는 클래스를 생성한다고 가정해 보겠습니다. 이 예에서는 reverse 및 length 라는 두 가지 정적 메서드가 포함된 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 클래스의 reverse 및 length 메서드를 호출하여 문자열을 반전하고 길이를 각각 알아냈습니다.
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의 정적 클래스에는 관련 기능을 함께 그룹화하는 데 사용할 수 있는 정적 중첩 클래스가 포함될 수도 있습니다.
GO TO FULL VERSION