본문 바로가기

CS/객체지향프로그래밍

[객체지향프로그래밍] 객체지향프로그래밍(OOP)이란?

객체지향프로그래밍(OOP, Object Oriented Programming)

Real World를 프로그래밍으로 옮겨 와서 real world의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍 하는 것.

 

객체 지향 프로그래밍을 이용하면 재사용성과 변형 가능성을 높일 수 있음.

 

 

OOP의 5원칙

- SRP(Single Responsibility Principle, 단일 책임 원칙): 클래스는 단 하나의 목적을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다.

- OCP(Open-Cloed Principle, 개방 폐쇄 원칙): 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다.

- LSP(Liskov Substitution Principle, 리스코프 치환 원칙): 상위 타입의 객체를 하위 타입으로 바꾸어도 프로그램은 일관되게 동작해야 한다.

- ISP(Integface Segregation Principle, 인터페이스 분리 원칙): 클라이언트는 이용하지 않는 메소드에 의존하지 않도록 인터페이스를 분리해야 한다.

- DIP(Dependency Inversion Principle, 의존 역전 법칙): 클라이언트는 추상화(인터페이스)에 의존해야 하며, 구체화(구현된 클래스)에 의존해선 안 된다.

 

 

절차지향 프로그래밍과의 차이

절차지향 프로그래밍(Procedural Programming) 객체지향 프로그래밍
순차적인 처리를 중요시하며 개발(시간 순서) 현실 세계의 사물들을 객체로 모델링하여 개발
C 언어가 대표적 Java가 대표적
코드의 순서가 바뀌면 동일 결과를 보장하기 힘듦. 캡슐화, 상속, 다형성 등의 기법 사용 가능. 다형성은 동일한 키보드의 키가 다른 역할을 하는 것처럼 하나의 메소드나 클래스가 다양한 방법으로 동작하는 것을 의미
컴퓨터의 처리구조와 유사해 실행속도가 빠름. 절차지향 언어보다 실행속도가 느림.