본문 바로가기
카테고리 없음

[JAVA 개념 정리] 객체지향(OOP)이란?

by cook_code 2023. 3. 30.
반응형

객체지향의 개념

객체지향 프로그래밍(OOP)이란, 프로그램을 상태(state)와 행위(behave)로 이루어진 객체라는 기본 단위로 나누고, 이 객체들 간의 상호작용을 통해 프로그램을 설계하고 개발하는 것이다. 
* OOP : Object Oriented Programming

객체지향 프로그래밍 특징 4가지 

  • 추상화 (Abstraction) - 복잡성을 낮추기 위해
  • 캡슐화 (Encapsulation) - 객체 내부의 상황을 외부로부터 보호 (인터페이스만 변경하면 수정 가능하도록)
  • 다형성 (Polymorphism) - 하나의 타입으로 여러 객체를 참조
  • 상속 (Inheritance) - 부모로부터 물려받는 것 

객체지향 설계 원칙 5가지 (SOLID)

  • SRP: 단일책임의 원칙 (Single Responsibility Principle) - 한 기능 당 하나의 책임 
  • OCP: 개방-폐쇄 원칙 (Open Closed Principle) - 확장에는 열려있고 변경에는 닫혀있다. 
  • LSP: 리스코프 치환 원칙 (Liskov Substitution Principle) - 상위 타입을 하위 타입으로 치환해도 동작에 문제가 없어야 한다. 
  • ISP: 인터페이스 분리 원칙 (Interface Segregation Principle) - 클라이언트에게만 필요한 기능만 수행하도록 한다. 
  • DIP: 의존 역전 원칙 (Dependency Inversion Principle) - 변경이 거의 일어나지 않는 쪽에 의존해야 한다. (추상화된 인터페이스나 상위클래스 이용)

객체지향 VS 절차지향 

 

- 책임이 한 곳에 집중되어 있는 방식 / 기능보다 절차에 중심을 두는 방식 (절차)
- 책임이 여러 객체로 적절히 분산되어 있는 방식 / 절차보다는 기능에 중심을 두는 방식 (객체)

객체지향을 사용하는 언어 

c++, c#, 자바, Objective-C (애플 운영체제인 ios에서 사용되는 언어), 루비, 액션스크립트, 스위프트 등

객체지향 개념 요약

객체지향 프로그래밍이란 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 
그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 
코드 재사용이 용이하고, 유지보수가 쉬우며 대형 프로젝트에 적합하다는 장점이 있습니다. 
다만, 처리 속도가 절차지향 프로그래밍에 비해 상대적으로 느리고, 객체가 많으면 용량이 커질 수 있습니다. 
또, 설계 시 많은 시간과 노력이 필요하다는 특징이 있습니다.

 

참고 블로그 

 

객체지향 vs 절차지향??

  객체지향 프로그래밍을 소개하는 많은 강의 및 입문서에서는 보통 절차지향 프로그래밍 기...

blog.naver.com

 

객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP)

객체 지향 프로그래밍(Object Oriented Programming) 여러 소프트웨어 관련 IT기업 신입사원 기술면접에서 면접자들 긴장을 풀어줄 겸 워밍업으로 자주 나오는 질문이다. "객체 지향 프로그래밍에 대해

jeong-pro.tistory.com

 

반응형