ch 6-32~35ジェネレータ、デフォルトジェネレータ

9994 ワード

ch 6-32構造関数


-インスタンスを作成するたびに呼び出されるインスタンスの初期化方法
-インスタンスの作成時に実行するアクション(iv初期化)
 // 원하는 값으로 초기화하기
Time t = new Time();
t.hour = 12;
t.minute = 34;
t.second = 56;

-> Time t = new Time(12,34,45);
 // 위와 같은 코드는 생성자를 추가해줘야한다.
-クラス名と同じ名前でなければなりません.
-戻り値がありません(voidは貼り付けません)
-すべてのクラスにジェネレータが必要です.
→クラス名(タイプ変数名、タイプ変数名、...){ }
class Card() {

	// 생성자 오버로딩
	Card() { } // 매개변수가 없는 생성자
	Card(String kind, int number) { }  // 매개변수가 있는 생성자
} 

ch 6-33デフォルトコンストラクタ


  • パラメータのない作成者

  • コンパイラは、コンストラクション関数が1つもない場合にのみ自動的に追加されます.
  • 클래스이름() { } // 기본생성자
    
    Point()  {} // Point 클래스의 기본생성자
    class Data_1 {
    	Data_1(){} // 기본생성자를 추가 -> 기본생성자가 없어서 컴파일러에서 자동추가
    	int value;
    }
    
    class Data_2 {
    	int value;
    	Data_2(){}
    	 
    //	Data_2(){} // 기본생성자 추가 
    	Data_2(int x) {   // 매개변수가 있는 생성자.
    		
    		value = x;
    	}
    }
    
    class Ex6_11 {
    	public static void main(String[] args) {
    		Data_1 d1 = new Data_1();
    		Data_2 d2 = new Data_2(); // compile error발생 -> 기본생성자 추가해야함.
    		
    		
    	}
    }

    ch 6-34パラメータを持つ作成者

    class Car {
    	String color;		// 색상
    	String gearType;	// 변속기 종류 - auto(자동), manual(수동)
    	int door;			// 문의 개수
    	
    	Car(){}
    	
    	Car(String c, String g, int d) { // 매개변수가 있는 생성자
    		color = c;
    		gearType = g;
    		door = d;
    	}
    }
    
    class Ex6_12 {
    	public static void main(String[] args) {
    		Car c = new Car("white","auto",4); // Car(Sting c , String g , int d) 호출
    	
    		System.out.println(c.color);
    		System.out.println(c.gearType);
    		System.out.println(c.door);
    	}
    }
    
    // 출력결과
    white
    auto
    4