[프로그래머스 자바 입문] 생성자(Constructor)

최대 1 분 소요

💡 모든 클래스는 인스턴스화될 때 생성자를 사용한다.

  • ex) Car() 부분이 생성자

    public static void main(String[] args) {
      Car c1 = new Car();
    }
    

생성자의 특징

  • 생성자는 리턴타입이 없다.
  • 생성자를 프로그래머가 만들지 않으면, 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다.
  • 매개변수가 없는 생성자를 기본 생성자라고 한다.
  • 생성자를 하나라도 프로그래머가 만들었다면, 기본 생성자는 자동으로 만들어지지 않는다.

생성자의 역할

  • 생성자가 하는 일은 객체가 생성될 때 필드를 초기화하는 역할을 수행한다.
  • ex) 자동차가 객체가 생성될 때 반드시 name을 가지도록 하려면, Car 클래스를 다음과 같이 만들어야 한다.

    public class Car {
      
      String name;
      int number;
        
      // 생성자
      public Car(String n) {
        name = n; // 매개변수를 n을 받아서 name 속성에 대입
      }
    }
    
    • 위의 Car 클래스를 이용하여 Car 인스턴스를 생성하는 방법

      public class CarExam2 {
          
        public static void main(String[] args) {
            
          // Car 객체를 생성할 때, name 필드를 초기화
          Car c1 = new Car("소방차");
          Car c2 = new Car("구급차");
          // Car c3 = new car(); // 컴파일 오류 발생(기본 생성자가 없으므로)
              
          System.out.println(c1.name); // 소방차
          System.out.println(c2.name); // 구급차
        }
      }
      
      • Car 클래스는 기본 생성자를 가지지 않으므로, 기본 생성자로 Car 객체를 생성할 수 없다.

출처