*JAVA*

[java] 생성자(constructor)

깐부로부터 2021. 10. 26. 18:41

메소드의 이름이 클래스이름과 동일하고 리턴자료형이 없는 메소드(반환형이 없는 메소드)

객체가 생성될 때 (new키워드 사용시) 호출이 되는 메소드이다.

 

[표현법]

public 클래스이름(매개변수(생략가능)) { 

                  해당 생성자를 통해서 객체 생성시 실행하고자 하는 코드.

}

 

참고) 메소드의 표현법

접근제한자 반환형 메소드이름(매개변수(생략가능)) {

}

 

생성자를 작성하는 목적

 

1. 객체를 생성해주기 위한 목적

2. 객체를 생성 뿐만 아니라 매개변수로 전달된 값들을 바로 필드에 초기화할 목적

 

생성자의 종류

1. 매개변수가 없는 생성자 => 기본생성자

2. 매개변수가 있는 생성자

=> 차이점 : 필드에 값을 초기화 할 수 있냐 없냐의 차이

 

생성자 작성시 주의사항

1. 반드시!!!!!!!!!!!!!!!!!!!! 생성자의 이름은 클래스이 이름과 동일해야함!!!!!(대/소문자까지!)

2. 반환형이 존재하지 않는다. (void 안붙임, 항상 반환값이 없기 때문에..)

3. 생성자가 여러개 생성이 가능하지만 매개변수가 중복이 되면 안된다. =>'오버로딩'

4. 매개변수 생성자 명시적으로 작성하게되면 기본생성자를 JVM이 안 만들어줌!

 

=> 기본생성자를 만드는 습관을 들이는게 좋다!

 

기본생성자(매개변수가 없다!!!!!)

단지 객체를 생성할 목적으로 사용! => 메모리 공간이 할당 될 때, 공간을 확보할 때!

기본생성자는 생략해도 오류가 나지 않음!

생성자를 하나도 안만들면 JVM이 기본생성자를 자동으로 만들어줌!!

=> 기본생성자"항상" 작성하자!!!