본문 바로가기
IT_Developers/JAVA

JAVA - 생성자(Constructor)란? / 예제소스

by 고코더 2020. 3. 16.

생성자란 무엇인지 알아보자


안녕하세요.
고코더 입니다.


오늘은 생성자를 배워보려고 합니다. 이전에 new를 사용해서 생성자를 객체로 만드는 방법을 알아보았는데요. 오늘은 생성자가 무엇인지 자세히 알아보려고 합니다.

- 생성자는 객체로 생성 가능
- 기본 생성자는 자동으로 추가
- 생성자 이름은 클래스명과 같다.
- 리턴 값이 없다.
- 여러개의 생성자가 존재할 수 있다. 



 1. 생성자를 객체로


NEW라는 키워드를 사용해서 생성자를 객체로 만듭니다. 그래서 생성자를 생성한다고 하면 new 부터 나오는 메소드를 말합니다. 
1
GocoderClass gc= new GocoderClass();
cs


 2. 기본 생성자는 자동으로 추가된다.


자바에서 클래스에서 직접 생성잘를 작성하지 않아도 컴파일러는 자동으로 생성자를 코드에 추가합니다. 그래서 클래스에서 직접 만들지 않아도 자바에서 알아서 코드를 작성합니다.

1
2
3
public class GocoderClass { 
    // public GocoderClass() {} //만약 기본 생성자를 생성하지 않으면 컴파일러가 자동으로 생성 
}
cs


 3. 생성자는 클래스 이름과 같다.


생성자는 클래스 이름과 같아야 합니다. 이유는 자바가 그렇게 정의했기 때문입니다. 그렇기 때문에 다른 컴파일 언어보다. 조금 더 쉽다고 할 수 있습니다. 

1
2
3
4
5
public class GocoderClass { // 클래스명
    public GocoderClass() {} 
}
 
GocoderClass gc= new GocoderClass(); // 기본 생성자 명은 같다.
cs



 4. 리턴 값이 없다.


생성자와 메소드의 가장 큰 차이로는 이 리턴 값이 없다는 것입니다. 리턴이 있으면 보통 메소드로 구분합니다. 메소드명이 클래스명과 동일하고 리턴 자료형 없다는 생성자입니다.

1
2
3
4
public class GocoderClass { 
    public GocoderClass() {} 
    // return? // 리턴이 없어야 한다.
}
cs


 5. 여러개의 생성자가 존재한다.


매개변수에 따라서 여러개의 생성자가 생겨 날 수 있습니다. 생성자를 오버로딩 해서 사용할 수 있습니다. 이를 통해 기본 생성자 이외에 여러 생성자를 생성할 수 있습니다.

1
2
3
4
5
6
7
public class GocoderClass { // 클래스명
    public GocoderClass() {} 
    public GocoderClass(int a, string b) {} 
}
 
GocoderClass gc= new GocoderClass(); // 기본 생성자 명은 같다.
GocoderClass gc2= new GocoderClass(1,"b"); // 기본 생성자 명은 같다
cs



마무리


생성자 이해가 되죠?


댓글