객체 지향 프로그래밍 ( 코드를 짤 때 생각해야하는 기본소양 정리)

돌리의 하루·2023년 1월 13일
0

📖절차적 언어란?

주로 초기의 프로그래밍 언어.
절차적 언어는 순차적인 명령의 조합이다.

📖객체 지향 언어란?

class를 사용해서 코드를 작성한다.
javascript는 객체 지향으로 작성 가능하다.
현대의 언어들이 대부분 객체지향의 특징을 가진다.

🔑oop란?

  • 프로그램 설계 철학
  • 객체로 그룹화 되어있음

oop의 기본개념

1.캡슐화

  • 데이터와 기능을 하나로 묶는 것.
  • 은닉 : 구현은 숨기고, 동작은 노출시킨다.
  • 느슨한 결합 : 언제나 구현을 수정할 수 있다.

👀느슨한 결합이란?

코드 실행 순서에 따라 절차적으로 코드를 작성하는게 아닌, 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것.

👀은닉화란?

내부 데이터나 내부 구현이 외부로 노출되지 않도록 하는 것.
디테일한 구현이나 데이터는 숨기고, 객체 외부에서 필요한 동작만 노출시킨다.
은닉화를 사용해서 작성하면, 객체 내 메서드의 구현만 수정해도 노출된 메서드를 사용하는
코드 흐름은 바뀌지 않게 할 수 있다.
<->
❗반대로, 절차적 코드의 경우 데이터의 형태가 바뀔 때, 코드의 흐름이 바뀔 수가 있어 유지보수가 힘들다.

  1. 추상화
  • 내부의 구현은 복잡하지만, 노출되는 부분은 단순하게 만든다.
  • 사용하는 사람이 쉽게 느낄 수 있도록 단순한 이름으로 정의하는 것.
  • 클래스 정의 시, 인터페이스는 메서드와 속성을 정의한 것.
  1. 상속
  • inherit. 부모 클래스의 특징을 자식 클래스가 물려받는다.
  1. 다형성 ( 다양한 형태를 형성 )
  • 같은 이름을 가진 메서드라도 쓰임새에 맞게 다르게 동작함.
profile
진화중인 돌리입니다 :>

0개의 댓글