[Java] 생성자(Constructor)

·2023년 1월 19일
0

Java

목록 보기
5/9
post-thumbnail

생성자(Constructor)는 new 연산자와 같이 사용되며 클래스로부터 객체를 생성할 때 무조건 호출되어 객체의 초기화를 담당한다. 객체 초기화란 필드를 초기화하거나 메소드를 호출해 객체를 사용할 준비를 하는 것을 말한다. 생성자 없이 클래스로부터 객체를 만들 수는 없다.

기본 생성자

모든 클래스는 생성자가 반드시 존재하며, 하나 이상을 가질 수 있다. 클래스 내부에 생성자 선언을 생략하면 컴파일러가 기본 생성자를 바이트 코드에 자동 추가 시킨다.

public class Velog {
		public Velog() {} // 기본 생성자
}

하지만 클래스에 명시적으로 선언한 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.

생성자 선언

생성자는 메소드와 비슷한 모양을 가지고 있으며, 리턴 값이 없고 생성자의 이름은 클래스의 이름과 동일하다. 생성자 블록 내부에는 객체 초기화 코드가 작성된다.

매개 변수가 존재할 경우 생성자는 다음과 같이 선언해주면 된다.

Velog라는 객체를 생성할 때, 문자열, 정수 매개 변수를 각각 하나씩 받는다고 가정해보자.

Velog createVelog = new Velog(”아이디”, 3); 와 같은 코드로 생성자를 호출하려면 생성자는 다음과 같이 선언해야한다.

public class Velog {
	public Velog(String id, int number) { ~ 생성자 블록 ~ }
}

필드 초기화

클래스로부터 객체가 생성될 때 필드는 기본 초기값으로 자동 설정된다. 다른 값으로 초기화를 하고 싶은 경우라면 필드를 선언할 때 초기값을 주거나 생성자에게 초기값을 주면 된다.

public class Food {
	int price = 10000; // 필드를 선언할 때 초기값
	String name;

	public Food(String n) {
		name = n;  // 생성자에게 초기값
	}
}

객체 생성 시점에서 같은 필드값으로 값이 초기화가 되도 된다면 필드를 선언할 때 초기값을 주는 것이 좋고, 외부에서 주어진 값으로 초기화를 해야한다면 매개 변수로 초기값을 받아 생성자에게 넘겨주면 된다.

이 포스팅은
신용권, ⌜이것이 자바다-신용권의 Java 프로그래밍 정복⌟, 한빛미디어(주), 2015, 1,224
책을 참고했습니다.

profile
개발블로그👩🏻‍💻

0개의 댓글