이 기사에서는 독자가 참조하기 쉽도록 Java에서 자주 사용하는 키워드인 final, static, super를 주로 분석합니다. 세부사항은 다음과 같습니다:
1. 최종
1) 수업 수정:
이 클래스를 상속받을 수 없음을 나타냅니다.
2) 수정방법(method)
이 메서드를 재정의할 수 없음을 나타냅니다(@override).
3) 변수(variable) 수정
이 변수의 값은 나중에 변경할 수 없음을 나타냅니다. 이는 종종 불변 상수를 수정하는 데 사용됩니다.
참고: final은 문자 그대로 "최종"과 "변경할 수 없음"을 의미하므로 의미를 결합하여 기억하는 것이 더 편리합니다.
2. static (두 번째와 세 번째 방법이 일반적으로 사용됨)
1) 수업 수정:
(일반적으로 사용되지 않음)은 내부 클래스를 수정하는 데에만 사용할 수 있습니다. 일반 클래스에서는 이러한 방식으로 선언할 수 없습니다.
2) 수정방법(method)
정적 메소드는 특정 객체가 아닌 클래스(객체 간에 공유)에 속합니다. 객체를 생성할 필요가 없으며 클래스 이름을 사용하여 이 메서드를 호출할 수 있습니다.
(프로그램이 실행되면 클래스의 바이트코드가 메모리에 로딩된다. 클래스가 객체를 생성하지 않을 때는 클래스 변수에 메모리가 할당되고, 인스턴스 변수에는 특정 객체가 생성될 때만 메모리 공간이 할당된다. )
3) 변수(variable) 수정
2)와 마찬가지로 변수는 클래스 수준에서 공유되며 객체를 생성할 필요가 없지만 변수 값의 변화는 적분입니다. 즉, 객체 A가 연산을 통해 정적 변수의 값을 변경하면 됩니다. 그러면 객체 B가 변경된 정적 변수에 대해 작동합니다.
참고: static으로 수정된 코드 블록은 정적 코드 블록이라고 하며, JVM이 클래스를 로드할 때 먼저 실행되고 그 다음 일반 코드 블록이 실행됩니다. 여러 개의 정적 코드 블록이 있을 수 있으며, 이는 나타나는 순서대로 JVM에 의해 실행됩니다. 각 코드 블록은 한 번만 실행됩니다.
this 및 super 키워드는 정적 메서드에 나타날 수 없습니다.
3. super: (부모 클래스에 대한 참조 참조)
1) 클래스 관련(상위 클래스, 슈퍼 클래스라고도 함):
super(매개변수 1, 매개변수 2,..., 매개변수 n);을 통해 상위 클래스 생성자를 호출합니다.
2) 방법(방법) 관련
super.Method(매개변수 1, 매개변수 2,..., 매개변수 n)은 상위 클래스의 재정의된 메서드를 호출합니다.
3) 변수(variable) 관련
super.variable, 상위 클래스의 변수를 호출합니다.
참고: super는 하위 클래스 생성자의 첫 번째 줄에 사용해야 합니다.
상위 클래스에 매개변수가 없는 생성자가 없는 경우 하위 클래스는 super를 사용하여 상위 클래스의 생성자를 명시적으로 호출해야 합니다. Super는 상위 클래스에 대한 참조를 참조합니다.
4. this: (현재 객체에 대한 참조)
1) 수업 관련 :
this(매개변수 1, 매개변수 2,..., 매개변수 n), this는 일반 생성자(other)만 생성자(this)를 호출할 수 있으며, 일반 함수는 생성자를 호출할 수 없습니다.
2) 관련 방법 :
현재 객체에 대한 메소드 호출
3) 변수(variable) 관련:
현재 객체의 변수 호출
참고: this(); 및 super(); 생성자를 명시적으로 호출하는 것은 생성의 첫 번째 줄에만 배치할 수 있습니다.
this.method..();super.method..(); 어디에나 배치할 수 있으며 일반 메서드로 사용할 수 있습니다.
this 키워드를 사용하는 생성자와 메서드 간에는 큰 차이가 있습니다. 메소드 참조는 메소드가 실행되는 클래스의 인스턴스를 가리킵니다. 정적 메서드는 클래스 인스턴스에 속하지 않으므로 this 키워드를 사용할 수 없으므로 this 키워드를 사용할 수 없습니다. 생성자의 this는 매개변수 목록이 다른 동일한 클래스의 다른 생성자를 가리킵니다.