자바
생성자(constructor)
열곰탱
2022. 8. 2. 17:30
생성자
클래스 안에 선언되어서 객체가 생성될때에 필드에게
초기값을 제공하고 필요한 초기화 절차를 실행하는 것이다.
생성자의 이름 앞에는 반드시 public 수식어가 있어야 한다.
하나의 클래스 안에 여러 개의 생성자를 중복 정의(overloading)하는 것도 가능하다.
package ex09;
class Car{
private String color;
private int speed;
private int gear;
// 생성자 -상태 초기값을 결정 // 초기값을 지정하는 메서드
// 생성자의 이름 앞에는 반드시 public 수식어가 있어야 한다.
public Car(String color, int speed, int gear) { //생성자
System.out.println("car 객체가 만들어졌습니다.");
this.color = color;
this.speed = speed;
this.gear = gear;;
}
@Override
public String toString() {
return "Car [color=" + color + ", speed=" + speed + ", gear=" + gear + "]";
}
}
public class CarTest {
public static void main(String[] args) {
Car car = new Car("red",10,2); // 생성자 호출
System.out.println(car.toString());
}
}
결과 값이 null이 나오는 기유는
c1이 디폴트 생성자를 가르키기 때문이다.
매개변수가 있는 Cat생성자를 가르킨다.
결과 값이 상태값은 null이다.
결론
클래스를 만들때 상태를 초기화 하지 않는다.
초기화는 생성자를 통해서 한다.
디폴트 생성자는 내가 생성자를 직접 구현하지 않았을때만 생성한다.
내가 직접 생성자를 구현하지 않으면 디폴트 생성자가 있는 것이다.