객체지향 프로그래밍

객체지향 프로그래밍

  • 객체지향 프로그래밍
  • 객체지향 프로그래밍이 등장 하기 전에는 절차 지향 프로그래밍이 있었습니다. 모든것을 절차로 생각하고 기껏해야 함수로 이동하는게 끝이였으나 지금은 객체지향 프로그래밍의 등장으로 하나의 모델이 되는 청사진을 만들고 객체를 만드는 프로그래밍 패턴으로 바뀌었습니다.

객체지향 프로그래밍의 개념 4가지 ☝️

캡슐화(Encapsulation)

  • 데이터와 기능을 하나의 단위로 묶는것!
    • 은닉 이라는 특성을 가지고 구현은 숨기고 동작을 노출시키며 느슨한 결합에 유리하며 언제든 구현을 수정할수 있다.🧐
    • 캡슐화는 데이터와 속성을 따로 정의하는게 아니라 하나의 객체안에서 묶는것이다.
    • 속성과 매서드들이 하나로 결합되는것!

추상화(Abstraciton)

  • 통의 속성이나 기능을 묶어 이름을 붙이는 것!
    • 객체 지향적 관점에서 클래스를 정의하는 것을 바로 추상화라고 정의 내릴 수 있다.
    • 좀 더 살펴보면 물고기, 사자, 토끼, 뱀이 있을 때 우리는 이것들을 각각의 객체라 하며 이 객체들을 하나로 묶으려 할 때,만약 동물 또는 생물이라는 어떤 추상적인 객체로 크게 정의한다고 하자. 이때 동물 또는 생물이라고 묶는 것을 추상화라고 한다.

상속성, 재사용 (Inheritance)

  • 상위 개념의 특징을 하위 개념이 물려받는 것
    • 객체지향의 하이라이트 부분이라고 생각한다. 상속이란 개념이 없으면 객체지향이나 절차지향이나 도진개진
    • 간단히 예를 들자면, 자동차라는 부모클래스가 있다. 기름을 먹거나 달리는 기능을 하는 자동차인데,만약 지붕뚜껑이 열리는 특수한 기능을 추가하고 싶다면 기존의 자동차에서 스포차카를 생성한다. 그러면 스포츠카는 기름도 먹고 달리면서 지붕두껑이 열리는 기능도 갖춘 자동차가 되는 것

다형성(Polymorphism)

  • 부모클레스에서 물려받은 가상 함수를 자식 클래스 내에서 오버라이딩 되어 사용되는 것!
    • 같은 메서드 이름으로 다른 동작을 하는 것. 자식에서 재정의를 하는 것.
    • 재정의한 게 출력된다.
    • 만약 상속을 받은 메서드 중에 "영상 보기 = 인기 영상"이 있었다고 예를 들어보자. 하지만 자식 클래스에서 "영상 보기 = 스포츠 영상"으로 바꿨다면 "영상 보기" 코드를 불러오면 "스포츠 영상"이 출력된다.

'codestates' 카테고리의 다른 글

프로토타입 체인  (0) 2022.05.31
Prototype  (0) 2022.05.30
클래스와 인스턴스  (0) 2022.05.25
Section1 회고  (0) 2022.05.24
Spred/rest 문법  (0) 2022.05.18