コンストラクション関数/java


生成者

  • インスタンスの作成中に自動的に呼び出される初期化方法
  • 作成者とメソッドの違い

  • ジェネレータの名前は、クラスの名前と同じである必要があります.
  • ジェネレータは値を返さず、戻りタイプも表示されません.
  • インスタンスの作成時に自動的に呼び出され、インスタンス
  • を初期化する.
    // 인스턴스의 초기화를 위한 메소드, 인스턴스 생성 시 반드시 한번 호출해서 초기화를 진행해야 한다.
    public void initAccount(String acc, String ss, int bal) {
    	accNumber = acc;
    	ssNumber = ss;
    	balance = bal;
    }
    
    // 위의 메소드를 클래스 BankAccount의 생성자로 수정
    public BankAccount(String acc, String ss, int bal) {
    	accNumber = acc;
    	ssNumber = ss;
    	balance = bal;
    }

    BankAccount yoon = new BankAccount(“12-34-89”, “90990-9090990”, 10000);
  • の括弧内で値が伝達する、これらの値は、コンストラクタ呼び出し時のコンストラクタのパラメータとして
  • が伝達される.
  • 「インスタンスを作成する最後のステップ」では、次のコンストラクタが呼び出され、これらの値が渡され、これらの値を使用してインスタンス変数が初期化されます.
  • public BankAccount(String acc, String ss, int bal) {	// 생성자
    		accNumber = acc;	// 변수 accNumber 초기화
    		ssNumber = ss;		// 변수 ssNumber 초기화
    		balance = bal;		// 변수 balance 초기화
    	}
  • インスタンスを生成する最後のステップは、呼び出しジェネレータである.
  • 任意の理由でコンストラクション関数呼び出しを省略したインスタンスはインスタンスではありません.
  • フェイルオーバコンストラクタ

  • ジェネレータを省略したクラスが定義されている場合、Javaコンパイラは「デフォルトジェネレータ」と呼ばれ、クラスの定義に格納されます.
  • class BankAccount {
    	int balance;
    
    	public BankAccount() {	// 컴파일러에 의해 자동 삽입되는 ‘디폴트 생성자’
    		// empty
    	}
    	public int deposit(int amount) { … }
    	public int withdraw(int amount) { … }
    	public int checkMyBalance() { … }
    }
  • 生成子は、パラメータを伝達することなく定義され、
  • が挿入される.
  • では動作しませんが、インスタンスの生成ルール「ジェネレータの呼び出し」は変更されません.
  • コンパイラによってエラージェネレータが挿入されても、ジェネレータを直接定義することが望ましい.