: 값과 그 값을 사용하는 기능들을 묶어놓은 것
: 인스턴스를 만드는 틀이라는 점

여기서 인스턴스는 a, b, c를 의미하는 것이고,
클래스는 Person임을 알 수 있다.

인스턴스로 선언한 객체 a를 사용하기 위해서는 a.birthYear과 같이 참조변수로 접근
하지만 이렇게 하나하나를 println으로 출력하기에는 너무 비효율적이다.
이러한 반복적인 일들을 하는 동작은 함수로 정의를 내려서 사용하면 좀 더 효율적으로 기능 수행이 가능하다.
그래서 클래스 내에 함수를 넣어주면 모든 객체를 참조하게 된다.

이러한 방식으로 진행하면 함수 내 println 정의로 다른 모든 인스턴스 객체들이 참조로 접근하게 되어 사용하게 된다.
: 새로운 인스턴스를 생성하기 위해 호출하는 특수한 함수
: 파라미터나 반환형이 없는 특수한 함수
: 생성자를 통해 인스턴스가 만들어 질 때 호출되는 함수

Person에 대한 생성자로 name과 birthYear에 대한 속성을 초기화를 하고,
init을 통해 인스턴스가 생성 시 호출되어 출력문이 나오는 것이다.
: 기본 생성자와 다른 형태의 생성자를 제공하여 인스턴스를 생성시 편의를 제공하거나 추가적인 구문을 수행하는 기능을 제공하는 역할
: 반드시 보조 생성자(constructor)를 만들 때는 기본 생성자를 통해 속성을 초기화 해줘야 한다.

이미지와 같이 이름으로만 구성된 Person객체에 대하여 접근할 때에는 보조 생성자를 통하여 name에 대해서만 파라미터로 받고, this를 통해 기본 생성자의 birthYear 속성을 1997로 고정 초기화하여 생성한 것을 알 수 있다.
따라서 보저 생성자 생성 시 this로 기본 생성자의 파라미터에 해당 값들이 적용되어 init으로 구문을 수행 후 마지막에 출력문으로 사용됨을 알 수 있는 것이다.
기본 생성자와 보조 생성자는 클래스를 사용하는 사람에게 다양한 방법으로 인스턴스 생성하는 법을 제시함으로써 편의를 제공하는 기능이다.