
생성자 (Constrtuctor)
- 메소드(함수)의 일종
- Class명과 같은 이름의 함수
- 클래스를 초기화 할 때 쓰임 (예시: int sum = 0)
생성자의 특징
- 다시 호출할 수 없다 (여러 번 반복해서 실행 불가)
- Return 값이 없다
- Over Load가 가능하다
- Class를 생성할 때 자동 호출된다
- 클래스를 초기화 할 때
참고 : Destructor
- 소멸자
- 현재는 사용 안 함 (가비지 컬렉터가 이어 받음)
- C++에는 아직 있는 것으로 앎
생성자 코드 예시 1 - 기본 형식
// 메인함수
public class Sample {
public static void main(String[] args) {
MyClass cls = new MyClass(); // 여기에서 constructor가 호출됨, 이것이 매개변수임.
}
}
// 클래스
public class MyClass4 {
private int number;
private String name;
private double height;
private String birth;
// 기본 생성자
public MyClass4() {
System.out.println("MyClass4 MyClass4()");
}
}

생성자 코드 예시 2 - 초기값을 넣어주는 생성자
반드시 모든 멤버 변수를 초기화 해줄 필요는 없다. (0개 이상)
public class MyClass4 {
private int number;
private String name;
private double height;
private String birth;
public MyClass4(int number, String name, double height, String birth) {
this.number = number;
this.name = name;
this.height = height;
this.birth = birth;
}
}
// 메인 함수에서 객체 생성
MyClass4 cls = new MyClass4(10, "김정은", "159", "2001/01/01");
생성자 코드 예시 3 - 매개변수가 없는 생성자 + this + 초기화 생성자
물론 이렇게는 잘 쓰지 않는다. (복잡하다)
초기화가 필요한 경우라면, init() 메소드를 따로 만드는 것이 일반적임.
// 기본 생성자
public MyClass4() {
this(1000, "김성일", 172.5, "03/05/2019");
System.out.println("MyClass4 MyClass4()");
}
// this로 호출되는 생성자
public MyClass4(int number, String name, double height, String birth) {
this.number = number;
this.name = name;
this.height = height;
this.birth = birth;
}
참고: IDE 단축키 Alt + Insert
에디터 창에서 누르면 메서드를 바로 생성할 수 있다. 초기화할 멤버 변수를 선택해서 생성자를 만들 수도 있고, 게터와 세터를 만들 때 특히 편하다. toString() 오버라이드 메서드도 이걸로 만들면 빠르다.

@Override
public String toString() {
return "MyClass4{" +
"number=" + number +
", name='" + name + '\'' +
", height=" + height +
'}';
}
이런 식으로 작성된다
'Java > Java 기본 문법' 카테고리의 다른 글
| final (1) | 2025.01.24 |
|---|---|
| [Java] 제네릭 타입이란? <T> (0) | 2025.01.09 |
| [Java] this : 자기 자신을 가리키는 포인터 (0) | 2025.01.06 |
| [Java] 접근 지정자 (private, public, protected) (1) | 2025.01.06 |
| [Java] 예외 처리 (Exception, Try-Catch, throws) + 대표적인 예외 처리들 + 기초적인 포인터 개념 (2) | 2025.01.02 |