코드코코

[OOP] Object-Oriented-Programming - 객체지향 프로그래밍 본문

이것저것

[OOP] Object-Oriented-Programming - 객체지향 프로그래밍

코드코코 2022. 6. 19. 23:35

OOP(Object Oriented Programming, 객체지향 프로그래밍)

- 모든 데이터를 현실에 빗대어 객체로 다루는 프로그래밍 기법.

 

객체지향 언어의 4가지 특징

1 ) 캡슐화 (Encapsulation) : 데이터와 함수를 하나로 묶는다.

  • 데이터의 세부 내용이 객체 은닉된다. 즉, 데이터 변경으로 인한 에러가 줄어들고, 객체들간에 데이터를 자세히 알 필요가 없으므로 코드가 단순해진다.
  • 객체와 함수의 재사용이 쉽다.
  • 정보은닉 (Information Hiding) : private으로 선언한 데이터는 자기 자신을 통해서만(setter, getter) 접근 가능하다.

         - 각 객체간의 수정이 다른 객체에 미치는 영향을 최소화 한다.       

         - 외부 객체의 직접 접근을 막아 프로젝트 확장 시 오류를 최소화 한다.

 

2 ) 추상화 (Abstraction) : 불필요한 부분은 생략하고 중요한 것에만 초점을 맞춰 모델로 만든다.

  • 복잡한 모델을 중요한 것 만 추려 추상화 함으로써 시스템 구조를 시각적으로 표현할 수 있다.
  • 완전한 시스템이 구축되지 않더라도 개략적으로 모델을 만들어 테스트 하고 살을 붙여나갈 수 있다.

3 ) 상속성 (Inheritance) : 부모클래스에 정의된 모든 것을 자식 클래스가 물려받는다.

  • 재정의 할 필요가 없어 코드 작성이 간결해진다.
  • 상속으로 인한 최소한의 규칙을 통해 프로젝트의 확장 시 오류를 최소화 한다.
  • 자식클래스에서 새로운 함수를 추가하거나 부모 클래스의 함수를 재정의(Overriding)해 사용할 수 있다.
  • 클래스의 재사용이 쉽다.

4 ) 다형성 (Polymorphism) : 호출하는 객체에 따라 다른 동작을 한다.

  • 하나의 클래스에서 같은 이름의 함수를 여러 개 가질 수 있다(Overloading). 호출하는 객체가 어떤 인풋 파라미터를 사용해 호출하냐에 따라 각자 다른 함수가 호출되게 한다. 즉, 비슷한 기능을 하는 다른 함수를 만들 때 불필요하게 너무 많은 함수명을 만들어 내 가독성이 떨어지는 문제를 해결할 수 있다.
  •  

참조 : https://greendreamtrre.tistory.com/601 , https://nooblette.tistory.com/m/244

'이것저것' 카테고리의 다른 글

[Typescript] class  (0) 2022.06.20
[SASS] Sass 7-1 Architecture  (0) 2022.06.18
프로토콜이란?  (0) 2022.05.16
MySQL VS mongoDB  (0) 2022.05.05