20230215 [Java] 생성자란?

Daisy🌷·2023년 2월 15일
0

인스턴스 변수의 초기화

  • 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성됩니다.
  • 하지만 이렇게 생성된 객체는 모든 인스턴스 변수가 아직 초기화되지 않은 상태입니다.
  • 자바에서 클래스 변수와 인스턴스 변수는 별도로 초기화하지 않으면 자동 초기화 됩니다.
  • 하지만 사용자가 원하는 값으로 인스턴스 변수를 초기화하려면, 일반적인 초기화 방식으로는 초기화할 수 없습니다.
    인스턴스 변수 중에는 private 변수도 있으며, 이러한 private 변수에는 사용자나 프로그램이 직접 접근할 수 없기 때문입니다.
  • 따라서 private 인스턴스 변수에도 접근할 수 있는 초기화만을 위한 public 메소드가 필요해집니다.
  • 이러한 초기화만을 위한 메소드는 객체가 생성된 후부터 사용되기 전까지 반드시 인스턴스 변수의 초기화를 위해 호출되어야 합니다.

생성자(Constructor)

  • 자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공합니다.
  • 자바에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 합니다. (Car 클래스의 생성자의 이름은 Car가 됩니다.)

생성자의 특징

  1. 생성자는 반환값이 없지만, 반환 타입을 void로 선언하지 않습니다.
  2. 생성자는 초기화를 위한 데이터를 인수로 전달받을 수 있습니다.
  3. 객체를 초기화하는 방법이 여러 개 존재할 경우에는 하나의 클래스가 여러 개의 생성자를 가질 수 있습니다.

생성자 선언 방법

public 클래스(매개변수){
        ...
}
  • 클래스라는 부분은 생성자를 정의하는 클래스의 이름과 동일하게 적어줘야 한다.

생성자의 호출

  • 자바에서는 new 키워드를 사용하여 객체를 생성할 때 자동으로 생성자가 호출됩니다.

기본 생성자(default constructor)

  • 자바의 모든 클래스에는 하나 이상의 생성자가 정의되어 있어야 합니다. 하지만 특별히 생성자를 정의하지 않고도 인스턴스를 생성할 수 있습니다.
  • 이것은 자바 컴파일러가 기본 생성자라는 것을 기본으로 제공해 주기 때문입니다.
  • 기본 생성자는 매개변수를 하나도 가지지 않으며, 아무런 명령어도 포함하고 있지 않습니다.
  • 만약 매개변수를 가지는 생성자를 하나라도 정의했다면, 기본 생성자는 자동으로 추가되지 않습니다.
profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글