Part 3. 생성자
1. 생성자
생성자란 객체 생성 시, 초기화를 위한 메서드로 생성자가 제공된다.
객체가 생성될 때 멤버변수를 초기화하는 일은 생성자가 한다.
생성자는 메서드의 일종이지만 이름은 반드시 클래스명과 동일해야 한다.
메서드의 앞에 리턴형을 기술하지 않고 자료형도 없다.
ex : 접근_지정자 클래스_명 (인수1, 인수2, ...) {
}
package training;
class MyDate {
int year, month, day;
// 객체가 생성되자마자 오늘 날짜로 초기화 -> 생성자
public MyDate() {
year=2008;
month=8;
day=7;
}
// 형식매개변수가 3개 있는 생성자가 d2로 호출 된다.
public MyDate(int new_year, int new_month, int new_day) {
year=new_year;
month=new_month;
day=new_day; // day : 필드, new_day : 전달인자
System.out.println("전달인자 3개짜리 생성자");
}
public MyDate(int new_year, int new_month) {
// 생성자 this() : 생성자 내애서 첫문장에 위치 하여야 한다.
this(new_year,new_month,1);
System.out.println("전달인자 2개짜리 생성자");
}
public void print(){
System.out.println(year+"/"+month+"/"+day);
}
public void setDay(int day){
// 필드에 형식매개변수 값을 저장해야 한다.
this.day=day;
print();
}
}
public class Ex02 {
public static void main(String[] args) {
MyDate d=new MyDate(); // 객체 생성 시 자동으로 생성자 호출
d.print();
// 객체 생성하는 형식
// new 클래스명 (생성자에 전달해줄 실매개변수 리스트);
MyDate d2=new MyDate(2008,9,1);
d2.print();
d2.setDay(13);
d2.print();
MyDate d3=new MyDate(2008,9);
}
}
디폴트 생성자 : 컴파일러에서 기본적으로 제공되는 되는 생성자
사용자가 생성자를 하나라도 만들게 되면 디폴트 생성자를 사용할 수 없는 점을 유의
2. 레퍼런스 this
this를 사용하는 경우
메소드의 전달인자가 객체 속성과 이름이 동일할 때,
3. 생성자 this()
같은 클래스 내의 다른 생성자를 호출할때 사용
'수업 > 자바2JDK입문' 카테고리의 다른 글
Part 4. 상속 I (0) | 2008.08.08 |
---|---|
Part 3. static (2) | 2008.08.07 |
Part 2 & 3 메소드와 클래스 (0) | 2008.08.06 |
Part2. 메소드 나머지 부분 & Part 3. 클래스와 객체(11. 클래스와 객체) (3) | 2008.08.05 |
PART 2(7 제어문의 다양한 활용 ~ 10 사용자정의 메서드 만들기) (0) | 2008.08.04 |