1. 추상화(Abstraction) 객체를 만드는 과정은 현실 또는 가상의 존재를 프로그램 내에서 사용할 용도에 맞게 적절하게 설계하는 과정. 객체를 만들고 나면 그 객체를 사용하는 사람은 객체 내부에 존재하는 복잡한 원리를 모르더라도 객체 외부에 공개된 프로퍼티나 메소드만 가지고 객체를 문제없이 잘 사용할 수 있어야한다. 이를 위해 프로퍼티와 메소드의 이름을 누구나 이해하기 쉽게 잘 지어야하고, 필요한 경우 주석을 달아 그 내용을 문서화하여 공개해야한다. 이는 객체 뿐만 아니라 라이브러리나 프레임 워크의 경우에도 마찬가지이다. 2. 캡슐화 (Encapsulation) 캡슐화는 객체 외부에서 함부로 접근하면 안되는 프로퍼티나 메소드에 직접 접근할 수 없도록 하고, 필요한 경우 공개된 다른 메소드를 통해서..
다형성이란 객체지향프로그래밍 4가지 기둥 중 마지막 기둥 다형성은 많은 형태를 갖고 있는 성질을 말한다. 객체지향프로그래밍에서 다형성은 하나의 변수가 다양한 종류의 객체를 가리키는 것을 말한다. 다형성 예제 바로 예시를 보자. 프리미엄고객에게는 제품 구매 시 5% 할인이 들어간다고 가정해 보자. 고객이라는 객체와 프리미엄고객 객체가 있다. 프리미엄고객 객체는 고객객체의 자식클래스로 고객객체를 상속해서 사용하고 있다. class User{ constructor(email, birthdate) { this.email = email; this.birthdate = birthdate; } buy(itme) { console.log(`${this.email} buys ${item.name}`); } } class..
1. 상속이란 ? 현실에서 상속은 부모로 부터 물려 받은 재산을 의미한다. 코딩에서도 비슷하다 부모객체가 자식객체에게 자신의 프로퍼티와 객체를 물려줄때 사용한다. 2. 어떻게 상속을 어떻게 사용할까? 상속을 사용하는 방법은 간단하다. 객체를 생성할 때 extends를 활용해서 부모객체(물려받고자하는 객체)를 적어주면 된다. 예시를 보자. User 객체의 프로퍼티와 메소드를 상속받아 PremiumUser 객체를 만들어보자. class User { constructor(email, birthdate) { this.email = email; this.birthdate = birthdate; } buy(itme) { console.log(`${this.email} buys ${item.name}`); } } c..