Java Constructor(생성자)의 의미와 활용 예제
자바에서 Constructor(생성자)는 객체를 생성할 때 사용되는 특별한 메서드입니다.
Constructor의 의미 이해
1. 인스턴스 생성시 `new A()`의 의미
Constructor는 객체를 생성하는 시점에서 호출되는 특별한 메서드로, 객체를 초기화하는 역할을 합니다. `new A()`와 같이 객체를 생성할 때, 해당 클래스의 Constructor가 호출되어 객체를 초기화하게 됩니다.
2. `new`와 같이 사용되는 특수한 행위를 하는 Method
`new` 키워드와 함께 사용되는 Constructor는 해당 클래스의 인스턴스를 생성하고 초기화하는 역할을 합니다. 이 과정에서 필요한 초기화 작업이나 설정을 수행할 수 있으며, 객체가 생성될 때 필요한 리소스를 할당하는 등의 작업을 수행할 수 있습니다.
3. Constructor의 주 작업과 용도
- 객체의 초기화 : 필드 값을 설정하거나 다른 초기화 작업을 수행하여 객체를 사용할 준비를 합니다.
- 리소스 할당 및 해제 : 파일, 네트워크 연결, 데이터베이스 연결 등과 같은 리소스를 할당하거나 해제할 때 사용됩니다.
- 매개변수 전달 : 생성자에 매개변수를 전달하여 생성되는 객체의 특성을 지정할 수 있습니다.
- 상위 클래스의 생성자 호출 : 상속 관계에서 하위 클래스의 생성자가 호출될 때, 상위 클래스의 생성자를 호출하는 역할을 합니다.
아래의 Java 클래스 코드를 통해 Constructor의 활용을 살펴보겠습니다.
public class User01 {
// 필드
String name = "홍길동";
int javaLevel = 0;
// Default Constructor
public User01() {
System.out.println("Constructor Method");
}
public String getName() {
return name;
}
public int getJavaLevel() {
return javaLevel;
}
public static void main(String[] args) {
System.out.println("================");
User01 user;
System.out.println("================");
user = new User01();
System.out.println("================");
new User01();
System.out.println("================");
System.out.println("name : " + user.getName());
System.out.println("javaLevel : " + user.getJavaLevel());
}
}
위 코드에서 주목할 점은 다음과 같습니다:
- `User01` 클래스에는 `name`과 `javaLevel` 필드가 있습니다.
- `User01` 클래스에는 default Constructor가 정의되어 있으며, 객체가 생성될 때 "Constructor Method"라는 메시지가 출력됩니다.
- `main` 메서드에서 객체를 생성할 때 `new User01();`와 같이 사용하면 Constructor가 호출되며, 필드 `name`과 `javaLevel`이 초기화됩니다.
Constructor는 객체를 생성하고 초기화하는 데 중요한 역할을 합니다. 객체를 생성할 때 필요한 초기화 작업을 수행하고, 리소스를 할당하거나 매개변수를 전달하여 객체의 특성을 설정할 수 있습니다. Constructor를 올바르게 활용하면 안정적인 객체 지향 프로그래밍을 구현할 수 있습니다.