Spring을 공부하면서 객체를 이해하지 못한 나머지, 어떤 구조로 구동이 되는 것인지 알 수 없어서 자바로 돌아가 다시 공부를 진행했다.
다른 클래스에서 Car 클래스의 객체를 생성해서 사용하기 위해서는 Car클래스와 이름이 동일한
public Car () {} 로 기본 생성자를 만들어 준다.
다만, Class 안에서 생성자가 없다면 Java에서 public Car () {}을 선언하지 않아도 기본 생성자를 만들어준다.
생성자는 여러개를 만들 수 있다. 생성자가 2개 이상인 경우 이를 생성자 오버로딩이라고 한다.
Ex.
// 기본 생성자
public Car() {}
// 매개변수가 있는 생성자
public Car(String model, String name) {
this.model = model;
this.name = name;
}
매개변수가 있는 생성자를 호출하려면 타입에 맞는 값을 줘야 한다. 이후 생성자 this를 통해서 값을 저장한다.
2개의 클래스에서 같은 매서드를 실행할때 이를 인터페이스를 만들어서 정의 할 수 있다.
정의하는 방법은 클래스명의 오른쪽에 implements + "인터페이스명" 을 적어서 선언한다.
현재 BeveragePartTime 클래스와 hallPartTimer의 경우 greet와 work 매서드가 있다.
여기서 인사는 둘 다 동일하게 할 것이므로 인터페이스에서 정의를 하고
work 매서드의 경우 하는 일이 다르기 때문에 Interface에서 매서드를 만들어 놓기만 하고 직접 구현하고자 하는 내용은 해당 클래스에서 구현한다.