Ch.Covelope

객체지향 복습 OOP , 객체지향 개념정리 본문

JavaScript

객체지향 복습 OOP , 객체지향 개념정리

Chrysans 2022. 5. 10. 10:41
728x90
반응형

 

OOP - 객체지향 개념 정리

 

OOP object oriented programming 객체지향 프로그래밍

 

 

캡슐화


데이터와 데이터를 활용하는 함수를 캡슐 혹은 컨테이너 안에 두는 것을 의미하는데 이 경우 캡슐은 class를 의미한다.
(함수와 데이터가 개념적으로 연관되어 있으면 캡슐화를 사용해서 코드를 개선할 수 있다.)
장점은 코드가 구조화되고 함수나 메서드가 인수를 취할 필요도 없다. (this키워드로 데이터에 직접 액세스 할 수 있기 때문)
캡슐화를 사용하여 표시할 클래스의 속성과 숨길 속성을 선택할 수 있다.
캡슐화는 어떻게 클래스 정보에 접근 혹은 수정하는지를 결정하는 권한을 제공한다.

캡슐화는 데이터 그리고 class 안에 있는 해당 데이터를 이용하는 함수를 잘 정리하는 방법론

 


 

 

상속


코드를 더 작은 단위로, class로 쪼개고 재사용할 수 있다.
클래스를 extends 하면 자식 클래스는 부모 클래스의 모든 속성과 메서드를 상속 혹은 수신하게 된다.
상속은 분할 및 정복을 가능하게 한다. 클래스들을 작게 쪼개고 분할한 후에 레고처럼 클래스들을 구성할 수 있다. 

 


 

 

추상화


예를 들어 차량을 운전할 때 이를 위한 인터페이스를 사용한다. 여기서 인터페이스는 운전대, 페달, 각종 버튼들이 있다.
우리는 해당 인터페이스만 활용해서 차를 운전한다, 하지는 우리는 차량이 구현되는 세부적인 정보는 알지 못한다. (엔진이나 브레이크가 어떻게 작동하는지)
세부 정보는 모두 숨겨져 있다.
추상화된 내부 코드를 좀 더 빠르게 작동하게 수정한다고 해도 해당 코드를 사용하는 누구도 따로 뭔가를 바꿀 필요 없이 처음 사용했던 방법 그대로 사용할 수 있다.
(구현 세부 내용이 바뀌었더라도 인터페이스는 그대로 유지되었기 때문)

 


 

다형성

다형성은 여러 개의 + 형태(다형성)이라는 뜻이다. 
 부모 클래스에서의 메서드를 오버라이딩 할수 있는데 메서드가 어떻게 작동해야 하는지 규칙이 정해져 있다.
그래서 클래스의 핵심은 그대로 있고 구형 방식의 모양과 모습은 달라지게 되는 것이다. 
예를 들어 두 개의 다른 클래스가 (B,C)가 하나의 부모 클래스에게 상속 받고 있다(A) . A는 하나의 sayHi()를 가지고 있지만
다형성을 이용해서 B,C 가 각기 다른 sayHi() 를 가지거나 출력할 수 있다.

 

 


 

 

 

 

 

개발자 교양필수? 객체지향 개념정리 10분컷. - YouTube

oop 복습 자료 참고 자료

 

 


 

 

https://github.com/chry8822

 

chry8822 - Overview

‘Keep true to the dreams of thy youth’ . chry8822 has 30 repositories available. Follow their code on GitHub.

github.com

 

 

 


 

 

 

728x90
반응형
Comments