정적 : (static modifier) 객체 지향 객체의 정적 수정 내용은 객체와 직접적으로 제휴하지 않은 클래스에 속하므로 정적으로 수정 된 멤버 변수는 일반적으로 클래스 멤버 변수라고하며 정적 수정 방법을 일반적으로 클래스 방법이라고합니다.
분류:
1. 정적 변수 또는 클래스 변수라고도하는 정적 변수. 다른 유형은 인스턴스 변수라고하는 static에 의해 수정되지 않은 변수입니다.
2. 정적 메소드 또는 클래스 메소드라고도하는 정적 메소드는 정적 메소드에서 정적 변수를 정의 할 수 없으며 인스턴스 메소드는 할 수 없습니다.
3. 정적 코드 블록, 정적 블록에서 정적 변수에 액세스하고 정적 메소드를 호출 할 수 있습니다.
참고 :
1. 정적이 객체에 의존하지 않으면이 방법이 없습니다.
2. 정적 방법은 비 정적 방법을 호출 할 수 없지만 정적이 아닌 방법은 정적 메소드를 호출 할 수 있습니다.
3. 정적으로 수정 된 방법 또는 변수는 액세스를 위해 객체에 의존 할 필요가 없습니다. 클래스가로드되는 한 클래스 이름을 통해 액세스 할 수 있습니다.
4. 정적 방법을 다시 작성할 수 없습니다. 서브 클래스와 상위 클래스에 동일한 정적 메소드가 있으면 기본 호출은 상위 클래스의 정적 메소드이고 서브 클래스의 정적 메소드가 숨겨져 있습니다.
5. 정적 블록은 일반적으로 클래스에서 정적 변수를 초기화하는 데 사용됩니다. 정적 수정의 내용을 기반으로 첫 번째 정의 및 첫 번째 실행의 원리를 따릅니다.
6. 변수 나 방법이 종종 호출되면 정적 수정을 사용하십시오. 그렇지 않으면 메모리 누출을 피하려면 덜 사용하십시오.
정적 변수의 예제 코드 :
공개 수업 테스트 {정적 int a = 1; // 정적 변수 int b = 2; // 인스턴스 변수 public static void main (String [] args) {System.out.println (test.a); //system.out.print(a);system.out.println(B); // 직접 출력 변수 b는 오류 테스트를보고합니다. t = new test (); // 인스턴스 객체 system.out.println (tb) 만들기; // 객체 호출 변수}}정적 방법에 대한 코드의 예 :
공개 수업 테스트 {정적 int a = 1; // 정적 변수 int b = 2; // 인스턴스 변수 static void a () {// static method b (); // 오류 가보고되어 정적 메소드는 비 정적 메소드 시스템을 호출 할 수 없습니다. out.println (test.a); //system.out.print(a);} void b () {// non-static method test.a (); //에이(); 비 정적 메소드는 static method system.out.println (b)을 호출 할 수 있습니다. System.out.println (Test.A); //system.out.print(a);} public static void main (String [] args) {test.a (); // a (); b (); // 오류 가보고되어, 인스턴스 객체 테스트 t = new test (); tb ();}}/**다시 작성 될 수 있습니까?*/class stanticson이 테스트를 확장 할 수 있습니까? {// 하위 클래스가 상위 클래스 void a () {// 오류의 정적 메소드가 다시 작성 될 수 없습니다. 서브 클래스의 정적 메소드, 엄밀히 말하면, 부모 클래스의 정적 방법이 아닙니다}}정적 블록 코드의 예 :
공개 클래스 테스트 {int c = 3; static int a = 1; static int b = 2; static {a = 10; b = 20; c = 30; // 오류를보고하고, 정적 블록의 변수는 정적 변수 System.out.println (a+b);} public static void main (string [] args) {test t = new test (); System.out.println (tc); // 정적 변수를 먼저 실행 한 다음 인스턴스 변수를 실행합니다}} 최종 : 불변으로 이해하십시오.
참고 :
1. 최종 및 정적은 종종 함께 사용됩니다.
2. 최종적으로 수정 된 변수는 한 번만 할당 할 수 있습니다.
3. 최종 방법을 다시 작성할 수는 없지만 과부하 할 수 있습니다.
4. 최종 클래스는 상속받을 수 없습니다.
5. 두 키워드 최종 및 초록은 반대이며 동시에 클래스를 수정하는 것은 불가능합니다. 최종을 다시 작성할 수없고 초록을 다시 작성해야하기 때문입니다.
6. 최종 키워드는 최종 키워드와 다르며 예외 처리에 사용됩니다.
7. 대부분의 경우, 최종은 확장 할 수 없기 때문에 방법과 클래스를 수정하는 데 사용되지 않습니다.
8. Final은 특정 환경에서 프로그램의 실행 성능을 향상시키고 프로그램의 구조를 최적화하기 위해 사용될 수 있습니다.
최종 변수 코드 및 최종 클래스의 예 :
공개 최종 수업 테스트 {최종 정적 int a = 1; 정적 {a = 10; // 오류보고, 하나의 할당 작업 만 수행 할 수 있습니다}} 클래스 FinalSon은 테스트를 확장합니다 {// 오류 보고서, 최종 클래스를 상속받을 수 없습니다}최종 방법의 코드 예 :
공개 클래스 테스트 {최종 정적 int a = 1; 최종 void a () {// final method.out.out.println (a);}} 클래스 최종 테스트는 테스트 {void a () {// 오류 가보고되어보고된다. 최종 방법은 다시 작성할 수 없다.