언어(Language)/Java
[Java] 생성자
송기동
2024. 2. 21. 18:56
728x90
생성자(Constructor)
- 객체가 생성될 때 호출되는 특별한 메서드
- 객체의 초기화를 담당, 객체가 메모리에 할당될 때 자동으로 호출
- 주로 클래스 내부에 정의
- 클래스와 동일한 이름을 가짐
- 리턴 타입이 없음
- 인스턴스화 시 호출됨 ('new' 키워드)
- 오버로딩 가능
# 생성자의 목적
- 주된 목적은 객체의 초기화
- 초기화 작업은 주로 멤버 변수의 값 설정, 리소스 할당, 객체 간의 관계 설정 등을 포함
# 객체의 생성과 생성자 호출
- 객체를 생성할 때 'new' 키워드를 사용
- 생성자는 객체가 생성될 때 자동으로 호출되어 초기화 작업을 수행
# 기본 생성자 (Default Constructor)
- 클래스에 명시적으로 생성자를 작성하지 않으면 컴파일러가 자동으로 기본 생성자를 생성
- 매개변수를 가지지 않고 클래스의 멤버 변수들을 초기화하는 역할
# 생성자의 오버로딩
- 하나의 클래스에 여러개의 생성자를 정의하여 다양한 초기화 방법을 제공하는 것
- 오버로딩된 생성자들은 서로 다른 매개변수 목록을 가져야 함
# 생성자와 메서드 차이
- 생성자 : 반환 타입 없음, 객체가 생성될 때 한번만 호출
- 메서드 : 반환 타입 있음, 필요에 따라 여러번 호출 가능
# 멤버 변수의 값을 초기화 하지 않은 경우
- 자동으로 컴파일러가 기본값으로 초기화 해줌
자료형 | int | double | boolean | 참조 자료형 |
기본값 | 0 | 0.0 | false | null |
public class ClassName {
// 멤버 변수 선언
// 기본 생성자
public ClassName() {
// 초기화 코드
}
// 매개변수를 받는 생성자
public ClassName(ParameterType1 parameter1, ParameterType2 parameter2, ...) {
// 초기화 코드
}
}
[Java] 생성자 사용 예시
생성자 만들어보기 package ch04; public class Bus { // 속성(상태) int busNumber; int count; int money; double weight; // 생성자 만들어 보기 // 생성자는 리턴 타입이 없다. 메서드와 구분하세요! // 반드시 클래스 이
thdrlehd.tistory.com
728x90