on
[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