JavaScript 개념정리 (4)
1. Object(객체): 프로그래밍에서 데이터와 이를 처리하는 메서드를 하나로 묶은 개념으로 객체지향 프로그래밍(OOP)를 위해서는 필수적인 요소. 객체는 코드의 재사용성을 돕고 유지보수성을 향상시키기에 효율적인 프로그래밍을 위해서 필요하다.

객체를 위해서는 클래스가 만들어져야 한다.

sayName과 letssing을 여러 번 사용할 때 일일이 만들지 않아도 객체를 생성함으로써 코드를 재사용할 수 있게 되었다.

+) 추가적인 참고 내용
getter와 setter는 private한 변수에 접근할 때 필요하다. getter에 비해 setter는 자주 쓰이지 않는다.

2. Inheritance (상속)
클래스에도 부모와 자식 관계가 형성된다. 자식이 부모의 재산을 상속받는 것처럼 클래스 사이에서도 가능하다. 현재 kpopIdols라는 클래스가 있다. 안에는 name과 year의 constructor가 있고 debutYear 이라는 메소드(함수)가 있다. 그 아래의 femaleIdol 클래스는 extends라는 키워드를 통해 kpopIdols의 name과 year, debutYear을 그대로 상속받을 수 있다. 즉 kpopIdols는 부모 클래스가, femaleIdol은 자식 클래스가 된 것이다.

아래는 객체를 만들고 이를 사용한 예시이다.
femaleIdol 클래스를 바탕으로 ohMyGirl이라는 객체가 만들어졌다. femaleIdol은 kpopIdols의 자식 클래스이기 때문에 debutYear이라는 메서드에 접근할 수 있고 이를 이용할 수 있다. 따라서 우리는 오마이걸의 데뷔년도를 프린트할 수 있다. 이는 BTS와 twice의 경우도 마찬가지이다. 이처럼 상속은 부모의 속성들을 자식도 이용가능케 하여 더 효율적인 코드를 짤 수 있도록 돕는다.

아래의 예시는 super 키워드를 사용하여 더 간단하게 상속을 이뤄낸 형태이다.
