logo

Java에서 정적 클래스를 사용하는 이유는 무엇입니까?

자바에서는 공전 변수, 클래스, 블록, 메소드와 함께 사용할 수 있는 키워드입니다. 이들 중 하나 앞에 static 키워드를 사용하면 지정된 멤버가 유형 자체에 속한다는 의미입니다. 즉, 정적 멤버의 인스턴스가 생성되어 클래스의 모든 인스턴스에서 공유됩니다.

이 섹션에서는 다음을 사용합니다. 공전 키워드 자바 클래스 그리고 이해도 해 왜 정적 클래스를 사용합니까?

Java 정적 클래스

static 키워드를 사용하여 클래스를 static으로 선언할 수 있습니다. 클래스는 다음과 같은 경우에만 정적으로 선언될 수 있습니다. 중첩 클래스 . 외부 클래스에 대한 참조가 필요하지 않습니다. 정적 클래스의 속성은 외부 클래스의 비정적 멤버에 액세스하는 것을 허용하지 않는다는 것입니다.

정적 클래스의 개념을 이해하려면 먼저 정적 클래스의 개념을 이해해야 합니다. 내부, 외부, 그리고 중첩된 수업.

내부 클래스

비정적이며 중첩된 클래스를 호출합니다. 내부 클래스 . 외부 클래스의 인스턴스를 만들지 않고는 내부 클래스의 인스턴스를 만들 수 없다는 점에 유의하세요. 외부 클래스 인스턴스에 대한 참조를 사용하지 않고도 내부 클래스의 인스턴스는 외부 클래스의 멤버에 액세스할 수 있습니다. 프로그램을 간단하고 간결하게 만듭니다.

외부 클래스

중첩 클래스가 정의된 클래스를 호출합니다. 외부 클래스 .

중첩 클래스

자바 클래스 내에서 클래스를 정의할 수 있습니다. 중첩 클래스 . 정적이거나 비정적일 수 있습니다. 정적 클래스와 비정적 클래스의 주요 차이점은 다음과 같습니다.

  • 외부 클래스의 인스턴스를 생성하지 않고도 정적 중첩 클래스의 인스턴스를 생성할 수 있습니다.
  • 외부 클래스의 정적 멤버와 비정적 멤버는 내부 클래스에서 액세스할 수 있습니다.
  • 외부 클래스의 정적 멤버는 정적 클래스에서만 액세스할 수 있습니다.

기억하다

  • 모든 정적 클래스는 중첩 클래스이지만 그 반대의 경우도 마찬가지입니다.
  • 외부 클래스의 정적 멤버에만 액세스할 수 있습니다.
  • 비정적 변수 및 인스턴스 메서드는 정적 클래스 내에서 액세스할 수 없습니다. 정적 필드에서 비정적 참조에 액세스하려고 하면 오류가 발생합니다. 비정적 필드에 대한 정적 참조를 만들 수 없습니다.
  • 정적 클래스 내에 정적 블록, 변수 및 메서드를 만들 수 있습니다.
  • 하나의 클래스에는 여러 개의 정적 클래스가 있을 수 있습니다.
  • 정적 클래스가 정적 블록 내에 있으면 해당 클래스에 액세스할 수 없습니다.
  • 정적 클래스에는 정적 클래스가 여러 개 있을 수 있습니다.

Java 정적 클래스 예

JavaStaticClassExample.java

 public class JavaStaticClassExample { private static String s= 'Javatpoint'; //Static and nested class static class StaticNestedClass { //non-static method of the nested class public void show() { //prints the string defined in base class System.out.println(s); } } public static void main(String args[]) { JavaStaticClassExample.StaticNestedClass obj = new JavaStaticClassExample.StaticNestedClass(); //invoking the method of the nested class obj.show(); } } 

산출:

 Javatpoint 

Java에서 정적 클래스를 사용하는 이유는 무엇입니까?

Java에서는 static 키워드가 주로 메모리 관리에 사용됩니다. 변수, 메소드, 블록 및 클래스와 함께 static 키워드를 사용할 수 있습니다. 정적 클래스를 사용하는 것은 클래스를 그룹화하는 방법입니다. 또한 개체 참조를 통해 바깥쪽 클래스의 기본 멤버에 액세스하는 데 사용됩니다. 정적 클래스는 바깥쪽 클래스가 로드될 때가 아니라 처음 사용 시 클래스 로더에 의해 로드됩니다.