반응형

객체지향(OOP) 언어의 4가지 특징

  • 추상화 (Abstraction)
  • 캡슐화 (Encapsulation)
  • 상속 (Inheritance)
  • 다형성 (Polymorphism)

 

 

추상화 (Abstraction)

  • 현실 세계의 사실에서 주어진 문제의 중요한 측면을 주목하여 설명하는 방식
  • 실세계의 객체에서 불필요한 부분을 제거하여, 필요한 부분만을 간결하고 이해하기 쉬운 클래스로 만드는 작업
  • 속성과 행동으로 추상화를 실형

 

캡슐화 (Encapsulation)

캡슐화

  • 객체와 객체 간의 의사소통을 위한 정보만을 노출하여 실제 내부의 구현 정보는 숨기는 윈리
  • 추상화 과정에서 클래스를 정의할 때, 객체의 자료와 행위를 클래스 단위로 하나로 묶고, 실제 내부 구현 내용을 외부에 감추는 것

정보 은닉(information hiding)이 발생

  • 캡슐화 과정에서 클래스 내부 구현을 외부에 숨김
  • 내부에서 일어나는 일은 관심 없음

클래스의 단위의 내부 기능 중 일부는 외부에 공개되어, 다른 객체와 메시지 전달과 수신을 하며 외부와의 통로 역할 수행

 

 

상속 (Inheritance)

  • '물려받는다'라는 특징을 상속
  • 객체지향의 가장 핵심이 되는 개념
  • 프로그램을 쉽게 확장할 수 있도록 해주는 강력한 수단
  • 상위 클래스와 하위 클래스 간의 관계 (계층도)
  • 상속의 장점 : 공통의 특성을 하위 클래스마다 반복적으로 기술하지 않고, 한 번만 기술하기 때문에 중복을 줄여 재사용성 증대

 

 

다형성 (Polymorphism)

  • 원래 생물학적 용어로 여러(poly) 형태(morphy)를 의미
  • 외부에 보이는 모습은 한 가지 형태이지만 실질적으로 쓰이는 기능은 여러 가지 역할을 수행한다는 의미
  • 다형성의 예 : 오버 로딩(overloading), 오버 라이딩(overriding)

 

 

 

반응형

+ Recent posts