Object Oriented Programming(OOP)
객체 지향 프로그래밍 ?
쉽게 이야기 하자면 클래스를 이용하여 객체를 생성하는 방법 또는 프로토타입 기반 프로그래밍을 객체 지향 프로그래밍이라고 간단하게 이해하자 !
프로토타입은 따로 정리해서 작성하겠다!
👀 자바스크립트는 객체 지향 언어는 아니다. 하지만 객체 지향 패턴으로 작성할 수 있다.
객체 지향 프로그래밍에서 필요한 Class와 Instance는 따로 정리 해두었으니
넘어가고 객체 지향 프로그래밍의 특성에 대해서 정리해보겠다.
객체 지향 프로그래밍의 특성 ?
Encapsulation (캡슐화)
객체의 속성과 기능을 하나의 객체 안에 넣어서 묶고
실제 구현 내용 일부를 외부에 감추어 은닉한다.
쉽게 이야기 하면 특정 부분을 은닉화 해서 외부에서
내부데이터 혹은 동작에 접근할 수 없고 메소드들을 사용만 할 수 있다.
캡슐화의 장점
Inheritance (상속)
상위 객체의 데이터, 메소드들을 하위 객체에 물려주어서 하위 객체에서도 사용할 수 있게 하는 것
부모 클래스의 특징을 자식 클래스가 물려 받는 것이다.
상속의 장점
Abstraction (추상화)
구체적인 것을 상세히 하지 않고 필요성에 의한 특성만을 가지고 구성하는 것
내부는 복잡하지만 사용자가 쓰기에는 간단하게 하는 것이다.
추상화 장점
Polymorphism (다형성)
특정 기능을 설계부분과 동작부분으로 분리한 후 동작부분을 다양한 방법으로 만들어 선택하여 사용할 수 있게 하는 기능
하나의 타입에 여러 객체를 대입해서 다양한 기능을 이용할 수 있도록 하는 것
다형성 장점
나중에 특성 하나하나 예시를 작성해서 올리도록 하겠다.