자바 클래스 구성원 초기 화 순서 와 그룹 초기 화

2596 단어 Java
1 자바 정적 도입
import java.lang.Math.min;
혹시
import java.lang.Math.*;
2 자바 지원 가 변 매개 변수,사용 시 재 확인
3 finalize
finalize 는 다소 불필요 하고 쓸모 가 크 지 않다 고 할 수 있 습 니 다.유일한 용 도 는 오 류 를 발견 하기 위해 정 보 를 표시 하 는 것 입 니 다.
다음은 그것 의 용법 이다.
class Book {
    boolean checkedOut = false;
    Book(boolean checkOut) {
        checkedOut = checkOut;
    }
    void checkIn() {
        checkedOut = false;
    }
    protected void finalize() {
        if(checkOut)
            System.out.println("Error: checked out");
    }
}
public class TerminationCodition {
    public static void main(String[] args) {
        Book novel = new Book(true);
        //Proper cleanup
        novel.checkIn();
        //Drop the reference, forget to clean up
        //청소 작업 을 잊 어 버 렸 습 니 다.finalize 를 통 해 이 오 류 를 발견 할 수 있 습 니 다.
        new Book(true);
        System.gc();
    }
}
4 자바 멤버 초기 화 순서
자동 초기 화 는 구조 기 가 호출 되 기 전에 발생 합 니 다.public class Counter {     int i;     Counter() {i = 7;} } 그러면 i 는 먼저 0 이 되 고 7 이 됩 니 다.예 를 들 어 이러한 변수 가 코드 의 어느 줄 에 있 든 구조 기 를 호출 하기 전에 초기 화 되 었 음 을 증명 합 니 다.
정적 구성원 초기 화:
/*
 *                 ,     Table
 *   ,    Table.b1 Table.b2,     Bowl b1
 *  b2        。      Table        ,
 *        ,              .
 */

class Bowl {
  Bowl(int marker) {
    System.out.println("Bowl(" + marker + ")");
  }
  void f1(int marker) {
    System.out.println("f1(" + marker + ")");
  }
}

class Table {
  static Bowl bowl1 = new Bowl(1);
  Table() {
    System.out.println("Table()");
    bowl2.f1(1);
  }
  void f2(int marker) {
    System.out.println("f2(" + marker + ")");
  }
  static Bowl bowl2 = new Bowl(2);
}

class Cupboard {
  Bowl bowl3 = new Bowl(3);
  static Bowl bowl4 = new Bowl(4);
  Cupboard() {
    System.out.println("Cupboard()");
    bowl4.f1(2);
  }
  void f3(int marker) {
    System.out.println("f3(" + marker + ")");
  }
  static Bowl bowl5 = new Bowl(5);
}

public class StaticInitialization {
  public static void main(String[] args) {
    System.out.println("Creating new Cupboard() in main");
    new Cupboard();
    System.out.println("Creating new Cupboard() in main");
    new Cupboard();
    table.f2(1);
    cupboard.f3(1);
  }
  /*  main      ,          main        */
  static Table table = new Table();
  static Cupboard cupboard = new Cupboard();
} 

5 배열 만 들 기
배열 을 만 드 는 두 가지 형식:

좋은 웹페이지 즐겨찾기