개발의 시작과 끝

2020.03.05 / Day - 21 자바 생성자, super 생성자 복습 본문

자바 복습

2020.03.05 / Day - 21 자바 생성자, super 생성자 복습

개발지혜 2020. 3. 5. 19:28

bbm - 8일차

 

생성자(Constructor)

class Main {
	public static void main(String[] args) {
		
    사람 a사람 = new 사람(29, "홍길순", "대전", "쾌활");

		System.out.println(a사람.나이);
		// 출력 : 20
		System.out.println(a사람.이름);
		// 출력 : 홍길동
		System.out.println(a사람.고향);
		// 출력 : 한양
		System.out.println(a사람.성격);
		// 출력 : 착함
	}
}

class 사람 {
    int 나이;
    String 이름;
    String 고향;
    String 성격;
	
	사람(int 나이, String 이름, String 고향, String 성격) {
    this.나이 = 나이;
    this.이름 = 이름;
    this.고향 = 고향;
    this.성격 = 성격;
	}
}

생성자를 만들 때 생성자명은 무조건 클래스명과 동일하게 지어야 한다.
리턴타입 없으며, 객체를 만들 때 반드시 한 번 실행된다.

 

 

bbm - 9일차

 

super 생성자

suiper 생성자는 부모 클래스의 생성자를 호출하며, 생략가능하다.

class Main {
	public static void main(String[] args) {
		new 사람();
		
		new 청둥오리();
	}
}

class 생물 {
	생물() {
		// 이 함수는 부모 클래스 생성자를 자동으로 호출한다.
		System.out.println("생물이 생성되었습니다.");
	}
}

class 동물 extends 생물 {
	동물() {
		super();
		System.out.println("동물이 생성되었습니다.");
	}
}

class 사람 extends 동물 {
	사람() {
        super();
		System.out.println("사람이 생성되었습니다.");
	}
}

class 청둥오리 extends 오리 {
	청둥오리() {
		System.out.println("청둥오리가 생성되었습니다.");
	}
}

class 오리 extends 동물 {
	오리() {
		System.out.println("오리가 생성되었습니다.");
	}
}

▼ 출력
생물이 생성되었습니다.
동물이 생성되었습니다.
오리가 생성되었습니다.
청둥오리 생성되었습니다.