생성자
클래스 안에 선언되어서 객체가 생성될때에 필드에게
초기값을 제공하고 필요한 초기화 절차를 실행하는 것이다.
생성자의 이름 앞에는 반드시 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이다.
결론
클래스를 만들때 상태를 초기화 하지 않는다.
초기화는 생성자를 통해서 한다.
디폴트 생성자는 내가 생성자를 직접 구현하지 않았을때만 생성한다.
내가 직접 생성자를 구현하지 않으면 디폴트 생성자가 있는 것이다.
'자바' 카테고리의 다른 글
오버라이딩(overriding) (0) | 2022.08.03 |
---|---|
자바 static 개념연습예제 (0) | 2022.08.03 |
이클립스 - toString 자동완성 (0) | 2022.08.02 |
강의영상, getter와 setter자동완성 (0) | 2022.08.02 |
절차 지향, 객체 지향 (0) | 2022.08.02 |