[CS] OOP / Abstraction

finelinefe·2020년 12월 16일
0

CS

목록 보기
25/46

OOP란?

OOP(Object Oriented Programming). 객체 지향 프로그래밍을 말한다.

모든 데이터를 오브젝트로 취급하여 프로그래밍 하는 방법.
데이터를 하나의 물체처럼 취급한다.

쉽게 말해 붕어빵 틀은 모두 동일한 모양과 크기를 가지지만(클래스), 결과물은 팥 붕어빵, 슈크림 붕어빵, 피자 붕어빵 등등 다양할 것이다. 이들이 가진 맛은 모두 제각각이지만(객체), 붕어빵 틀 안에서 모두 '붕어빵' 이라는 공통된 속성을 가진다.

객체지향 프로그래밍은 실세계와 유사한 원리를 통해 비슷한 형태를 가진다.

Object란?

객체. 데이터의 추상화.

객체 지향 프로그래밍을 통해 기능의 모듈화가 가능하게 되면서 하드웨어가 소프트웨어를 따라잡지 못하는 문제나 연산 한계를 방지함으로써 개선할 수 있다.

OOP 특징

  • 캡슐화 - 모든 파일 내에 존재하는 다양한 변수나 함수를 캡슐화를 통해 재활용 가능
  • 상속 - 어떠한 클래스 등의 캡슐화 된 것의 특성을 물려받는것. 기존 클래스 재사용 효과
  • 다형성 - Polymorphism(여러가지 형태 존재). 하나의 메소드나 클래스가 있어도 다양한 방법으로 동작이 가능한 것을 말한다. 쉽게 말해 + 라는 기호가 두 수를 더할 수도, 또는 문자열 형태를 가진 단어를 연산하는데 쓰일수도 있는 것.

OOP 장단점

  • 장점 : 재사용성 확대, 유지보수와 확장에 용이. 모델링 시 객체와 데이터 간의 관계 명확하게 파악 가능
  • 단점 : 초기설계시 시간 필요. 변수에 따라 예상치 못한 버그나 오류사항 야기될 수 있음.


JAVA 생활코딩 다형성

0개의 댓글