- 자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 생성자라는 메소드를 제공한다.

 - 생성자의 이름은 클래스 이름과 동일하여야 한다.

 ex ) class Car { } -> Car() { this.- }

 

[ 생성자 선언방법 ]

// 매개변수 없는 생성자 : 특별히 초기화 할 필요가 없을 경우에 사용.
class MyClass {
  MyClass() {
  
  }
}

// 매개변수 없는 생성자 : 원하는 값으로 초기화 하고자 할때 사용.
class MyClass {
  MyClass(int param1, String param2) {
  
  }
}

 - 위와 같이 생성자 중에는 매개변수를 전달받아 인스턴스 변수를 초기화 하는 생성자도 선언이 가능하다.

 

[ 생성자의 특징 ]

  • 리턴 타입 없음 : 생성자는 리턴 타입을 명시하지 않는다.
  • 자동 호출 : 객체를 생성할 때 'new' 키워드와 함께 자동으로 호출된다.
  • 기본 생성자 생 : 생성자를 명시적으로 정의하지 않으면 컴파일러가 자동으로 기본 생성자를 생성한다.

 

[ Car 클래스의 생성자를 선언하는 예제 ]

Car(String name, int year, String color, int maxSpeed) {
  this.name = name;
  this.year = year;
  this.color = color;
  this.maxSpeed = maxSpeed;
}

 - 위에 예제처럼 클래스의 생성자는 어떠한 리턴값도 명시하지 않음을 알 수 있다.

 

[ 생성자 호출 ]

 - 자바에서는 new 키워드를 사용하여 객체 생성 시, 자동으로 생성자가 호출된다.

class Car {
  private String name;
  private int year;
  private String color;
  private int maxSpeed;
  
  // 생성자 함수
  Car(String name, int year, String color, int maxSpeed) {
    this.name = name;
    this.year = year;
    this.color = color;
    this.maxSpeed = maxSpeed;
  }

  public String getModel() {
    return this.year + "년식" + this.name + " " + this.color;
  }
}

public class Method {
  public static void main(String[] args) {
    Car myCar = new Car("아반떼", 2016, "흰색" 200); // 생성자 호출
    System.out.println(myCar.getModel()); // 생성자에 의해 초기화 되었는지를 확인.
  }
}

 

[ 기본 생성자(Default Constructor) ]

  • 모든 클래스에는 하나 이상의 생성자가 정의되어야 합니다.
  • 생성자를 명시적으로 정의하지 않으면 컴파일러가 기본 생성자를 자동으로 생성합니다.
  • 기본 생성자는 매개변수가 없고 아무런 명령어도 포함되지 않습니다.

 

 

'#Java' 카테고리의 다른 글

다차원 배열  (0) 2024.04.05
배열(Array)  (0) 2024.04.05
Getter & Setter  (0) 2024.04.04
재귀함수(Recusion Function)  (0) 2024.04.04
Java 클래스(Class)  (0) 2024.04.03

+ Recent posts