인스턴스 변수의 초기화
- 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성됩니다.
- 하지만 이렇게 생성된 객체는 모든 인스턴스 변수가 아직 초기화되지 않은 상태입니다.
- 자바에서 클래스 변수와 인스턴스 변수는 별도로 초기화하지 않으면 자동 초기화 됩니다.
- 하지만 사용자가 원하는 값으로 인스턴스 변수를 초기화하려면, 일반적인 초기화 방식으로는 초기화할 수 없습니다.
인스턴스 변수 중에는 private 변수도 있으며, 이러한 private 변수에는 사용자나 프로그램이 직접 접근할 수 없기 때문입니다.- 따라서 private 인스턴스 변수에도 접근할 수 있는 초기화만을 위한 public 메소드가 필요해집니다.
- 이러한 초기화만을 위한 메소드는 객체가 생성된 후부터 사용되기 전까지 반드시 인스턴스 변수의 초기화를 위해 호출되어야 합니다.
생성자(Constructor)
- 자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공합니다.
- 자바에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 합니다. (Car 클래스의 생성자의 이름은 Car가 됩니다.)
생성자의 특징
- 생성자는 반환값이 없지만, 반환 타입을 void로 선언하지 않습니다.
- 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있습니다.
- 객체를 초기화하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있습니다.
생성자 선언 방법
public 클래스(매개변수){ ... }
- 클래스라는 부분은 생성자를 정의하는 클래스의 이름과 동일하게 적어줘야 한다.
생성자의 호출
- 자바에서는 new 키워드를 사용하여 객체를 생성할 때 자동으로 생성자가 호출됩니다.
기본 생성자(default constructor)
- 자바의 모든 클래스에는 하나 이상의 생성자가 정의되어 있어야 합니다. 하지만 특별히 생성자를 정의하지 않고도 인스턴스를 생성할 수 있습니다.
- 이것은 자바 컴파일러가 기본 생성자라는 것을 기본으로 제공해 주기 때문입니다.
- 기본 생성자는 매개변수를 하나도 가지지 않으며, 아무런 명령어도 포함하고 있지 않습니다.
- 만약 매개변수를 가지는 생성자를 하나라도 정의했다면, 기본 생성자는 자동으로 추가되지 않습니다.