728x90
반응형
생성자란?
객체 생성 시 초기화해주는 역할을 담당한다.
간단한 예로, 스마트폰 전원(객체)을 켜면 제조사 로고(생성자)가 등장(호출)하는 것과 같다.
생성자 특징을 살펴보면 다음과 같다.
- 클래스명과 메서드명(생성자)이 동일해야 한다.
- 리턴 타입이 없다.
- 객체 생성 시 단 한 번만 호출된다.
생성자를 사용하는 방법은 크게 2가지가 있다.
- 메서드에 매개변수 없이 호출하는 방법
- 메서드에 매개변수를 받아 호출하는 방법
바로 예제를 살펴보도록 하자.
public class ConstructorTest {
public ConstructorTest() {
System.out.println("Constructor 객체생성 !!");
}
public static void main(String[] args) {
ConstructorTest ct = new ConstructorTest(); // 객체 생성과 동시에 생성자 실행
}
}
클래스명과 동일한 생성자를 생성한 후 해당 클래스 타입으로 새로운 객체를 생성하면,
생성과 동시에 생성자를 호출하여 위와 같은 실행결과를 얻게 된다.
다음으로는 매개변수를 받아 생성자를 호출하는 예제를 보면 아래와 같다.
public class ConstructorTest {
private String value;
public ConstructorTest(String value) {
System.out.println("Constructor 객체생성 !!");
this.value = value;
}
public static void main(String[] args) {
ConstructorTest ct1 = new ConstructorTest("객체 1 !!");
ConstructorTest ct2 = new ConstructorTest("객체 2 !!");
System.out.println(ct1.value);
System.out.println(ct2.value);
}
}
String 타입의 value를 필드로 선언한 후 메서드에 매개변수로 받아 호출할 수 있는 생성자를 생성하였다.
다음으로 객체 생성 시 인자를 입력해 생성자를 호출하면 위와 같은 실행결과를 얻게 된다.
여기서 주의할 점은 객체 생성 시 인자를 입력하지 않으면 컴파일 에러를 발생시킨다.
참고로 this에 대해 궁금하다면 아래를 참고하면 된다.
728x90
반응형
'Language > Java' 카테고리의 다른 글
java scheduler 중복 호출 이슈 해결하기 (0) | 2023.04.02 |
---|---|
[Java] 자바 컬렉션(Collection)이란? (2) | 2021.09.09 |
[Java] this 키워드의 개념과 사용 방법 세 가지 (0) | 2021.09.08 |
[Java] 함수 호출 'CallByValue' 와 'CallByReference' 의 차이 (0) | 2021.09.03 |
[Java] JVM Architecture (ClassLoader, Runtime Data Areas, Execution Engine) 정리 (0) | 2021.08.31 |
댓글