[Java] 생성자

dwkim·2023년 2월 26일

생성자
: 객체를 생성하고 객체 내 필드의 default 값을 정하는 특수한 메서드

  • 명시적으로 개발자가 호출 할 수 없고, 객체가 생성될 때 자동으로 호출된다
  • 리턴타입이 없고 클래스 명과 같은 이름의 메서드
class 전사 {
    String 이름;
    int 나이;
    
// 기본생성자
    전사() {
        // this(); 와 같은 형태의 호출은 생성자에서만 가능하다.
        this("NoName"); // 아래 있는 생성자를 호출
    }
    
// 생성자2 - 오버로딩
    전사(String 이름) {
        this.이름 = 이름;
        나이 = 20;
    }
}
  • 기본생성자: 입력매개변수가 없는 생성자
  • 기본생성자는 굳이 만들지 않아도 이미 클래스 안에 자동 생성됨.
  • 여러 생성자를 만들 수 있지만, 매개변수 구성이 달라야 함.
  • 기본생성자가 아닌 생성자가 정의되면, 기본생성자는 자동으로 정의되지 않는다.
class 사람 {
	사람(String 이름) {
	}
	
	사람() {
	} 
    // 기본생성자는 위 `사람(String 이름)`생성자를 정의하는 순간부터 자동으로 만들어지지 않는다.
}

오버로딩
: 매개변수 구성은 다르지만 메서드 이름은 같은 메서드(생성자 포함)를 클래스 하나에 여러 개 두는 것

//메서드 오버로딩
static void 출력(String str) {
		System.out.println(str);
	}
	
	static void 출력(int i) {
		System.out.println(i);
	}
profile
예비 백엔드 개발자

0개의 댓글