객체 지향 프로그래밍
"클래스"라고 부르는 데이터 모델의 청사진을 사용해 코드 작성
현대의 언어들은 대부분 객체 지향의 특징을 갖고 있음
(대표적으로 Java, C++, C# 등)
캡슐화
데이터와 기능을 하나의 단위로 묶는 것
가장 중요한 이유는 "정보은닉" 때문
정보은닉이란, 객체에 대한 구체적인 정보를 노출시키지 않도록 하기 위한 기법
추상화
추상화의 장점
1. 사용자가 낮은 수준의 코드를 작성하지 않도록 도움.
2. 코드 중복 방지 및 재사용성 향상.
3. 사용자에게 영향을 끼치지 않은 채로 독립적으로 클래스의 내부 구현 변경 가능
4. 중요한 세부 정보만 사용자에게 제공하므로 응용 프로그램 또는 프로그램의 보안 향상에 도움
class ImplementAbstraction {
// method to set values of internal members
set(x, y) {
this.a = x;
this.b = y;
}
display() {
console.log('a = ' + this.a);
console.log('b = ' + this.b);
}
}
const obj = new ImplementAbstraction();
obj.set(10, 20);
obj.display();
// a = 10
// b = 20
상속
기존 부모 클래스(비교적 추상적)를 상속받아 새로운 자식 클래스(비교적 구체적)를 추가할 수 있다.
부모 생성자의 기능을 물려 받으면서, 새로운 기능을 추가.
다형성
다형성이란 객체의 프로퍼티 또는 메서도를 다향한 형태로 변형시켜 사용할 수 있는 것을 말한다.