728x90
728x90
# 관련 포스팅
1. 객체 지향 패러다임과 멤버 변수 : https://young0105.tistory.com/13
2. 메서드 : https://young0105.tistory.com/28
3. (현재 글) 생성자 : https://young0105.tistory.com/29
생성자 (Constructor)
- 객체를 생성할 때, 객체의 형태에 대한 강제성을 부여하는 것
- 객체를 생성하기 위해 'new' 키워드와 함께 호출됨
→ 객체가 메모리에 로드될 때 가장 먼저 수행되는 코드
- 객체가 생성될 때 변수/상수를 초기화하는 기능의 코드가 포함됨
- 생성자 내에서 메서드 호출 가능
- 클래스에는 반드시 적어도 하나 이상의 생성자가 존재함
- 반환 값이 없음 → 선언부에 반환 자료형이 없음
- 생성자 이름 == 클래스 이름
- 생성자 오버로딩 (overloading) ★
: 매개변수의 조합을 다르게 받는, 이름이 동일한 여러 개의 생성자를 만들어 두는 기법
# 멤버 변수의 값을 초기화하지 않은 경우
- 자동으로 컴파일러가 기본값으로 초기화해줌
자료형 | int | double | boolean | String | 참조 자료형 |
기본값 | 0 | 0.0 | false | null | null |
기본 생성자 (Default constructor)
- 매개변수가 없는 생성자
- 클래스 내부에 생성자가 없을 경우, 컴파일러가 자동으로 생성해두는 생성자
→ 사용자 정의 생성자가 하나라도 있다면, 기본 생성자는 자동으로 만들어지지 않음
// 클래스 설계 파일 //
public class 클래스명 {
자료형 멤버변수1;
자료형 멤버변수2;
...
// 기본 생성자
public 클래스명() {}
}
// 메인 함수 파일 //
public class ~ {
public static void main(String[] args) {
// 생성자 호출
클래스명 참조변수 = new 클래스명();
}
}
사용자 정의 생성자
// 클래스 설계 파일 //
public class 클래스명 {
자료형 멤버변수1;
...
// 사용자 정의 생성자
public 클래스명(자료형 매개변수1, ...) {
// 매개변수를 이용한 멤버변수 초기화
this.멤버변수1 = 매개변수1;
...
// 값을 대입하여 멤버변수 초기화
this.멤버변수n = 값;
}
}
// 메인 함수 파일 //
public class ~ {
public static void main(String[] args) {
// 생성자 호출
클래스명 참조변수 = new 클래스명(매개변수a, ...);
}
}
기타 메모
- 객체 자기 자신의 메모리를 가리키는 this
→ this를 이용하면 멤버변수와 매개변수의 이름이 동일해도 구분할 수 있음
320x100
반응형
'Java > Base' 카테고리의 다른 글
[Java] 배열 - 도서 정보 등록·조회·삭제 프로그램 구현 (0) | 2023.02.08 |
---|---|
[Java] 접근 제어 지시자와 get(), set() 메서드 (0) | 2023.02.07 |
[Java] 객체와 클래스 2 : 메서드 (멤버 함수) (0) | 2023.02.06 |
[Java] 스택 메모리와 힙 메모리 (0) | 2023.02.06 |
[Java] 함수 (0) | 2023.02.04 |