객체 지향 프로그래밍(Object-oriented Programming)과 주요 개념: 캡슐화, 추상화, 상속, 다형성

해리포터·2022년 5월 25일
0

객체 지향 프로그래밍(Object-oriented Programming)

  • 데이터와 기능을 한 곳에 묶어서 처리한다.
  • 객체 내에는 속성메서드가 있다.


객체 지향 프로그래밍(OOP) 의 4가지 주요 개념


캡슐화(Encapsulation)

  • 데이터(속성)과 기능(메서드)를 하나의 객체 안에 넣어서 묶는다.
    - 그렇기 때문에 내부 데이터나 기능의 구현은 객체 안에 있어, 외부에 노출시키지 않고 동작하는 코드만 노출시킨다.
    은닉화의 특징을 갖게 된다.
  • 느슨한 결합(Loose Coupling)을 가능하게 한다.
    -외부로 노출된 코드의 흐름에 영향을 주지 않고 객체 내의 메소드를 수정할 수 있다.


추상화(Abstraction)

  • 실제로 노출되는 부분 즉, 인터페이스를 단순화 하는 것을 말한다.
  • 복잡한 내부 구현을 노출시키지 않음으로 예기치 못한 사용상의 변화를 막을 수 있다.
    • 사용자에게 불필요한 메소드를 노출시키지 않음으로서 인터페이스를 단순하게 한다.
  • 캡슐화는 은닉화의 특징을 가지고 있고, 추상화는 단순화의 특징을 갖는다.


상속(Inheritance)

기본 클래스(base class)의 속성과 메서드를 파생 클래스(derived class)에게 상속시킴으로 불필요한 코드를 줄일 수 있다.
즉, 중복되는 코드를 제거한다.ㅓ
→ 코드의 재사용성을 높이는 장점이 있다.

예를 들어, 사람이라는 기본 클래스가 있다.

  • 이 클래스의 속성으로는 이름, 성별, 나이가 있고,

  • 메서드로는 먹다, 자다, 걷다 등이 있다.

만약 여기에 학생이라는 클래스를 추가한다고 한다면?

학생은 본질적으로 사람이기 때문에 사람의 속성과 메서드를 물려받는다.

따라서, 학생이라는 파생 클래스에는

  • 학생의 속성으로 다니는 학교,

  • 메서드로는 학교에 가다, 공부한다 등을 추가하면 된다.



다형성(Polymorphism)

  • 같은 메서드를 다양한 방식으로, 다르게 구현할 수 있다.
    → 객체의 특성에 맞게 같은 메서드를 다른 방식으로 작성할 수 있다.
profile
FE Developer 매일 한 걸음씩!

0개의 댓글