[Java] 생성자란?

[Java] 생성자란?

생성자란?

객체 생성 시 초기화해주는 역할을 담당한다.

간단한 예로, 스마트폰 전원(객체)을 켜면 제조사 로고(생성자)가 등장(호출)하는 것과 같다.

생성자 특징을 살펴보면 다음과 같다.

클래스명과 메서드명(생성자)이 동일해야 한다.

리턴 타입이 없다.

객체 생성 시 단 한 번만 호출된다.

생성자를 사용하는 방법은 크게 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에 대해 궁금하다면 아래를 참고하면 된다.

from http://choicode.tistory.com/32 by ccl(A) rewrite - 2021-10-31 23:27:37