본문 바로가기
프로그래밍 언어/코딩 상식

객체 지향(OOP)이란 ??

by Mostlove 2023. 6. 27.
728x90
반응형

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

프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을

통해 로직을 구성하는 프로그래밍 방법이다

 

객체 지향 프로그래밍의 장,단점 

장점 

1.코드 재사용이 용이하다 ex) 다른 사람이 만든 클래스를 가져와서 이용할 수 있고 상속을 하여 확장해서 사용할 수 있다.

2.유지 보수가 쉽다

3.협업에 용이하다 ex)클래스 단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러명 여러회사에서 프로젝트를 개발할 때 업무 분담하기 쉽다.

단점 

1. 처리속도가 상대적으로 느림

2. 객체가 많으면 용량이 커질 수 있음

3. 설계시 많은 시간과 노력이 필요

객체 지향 5원칙 (SOLID)

단일 책임 원칙(Single Responsiblity Principle)

모든 클래스는 각각 하나의 책이만 가져야 한다. 클래스는 그 책임을 완전히 캡슐화해야 한다

개방 -폐쇠 원칙(Open Closed Principle)

확장에는 열려 있고 수정에는 닫혀있는 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다

리스코프 치환 원칙 (Liskov Substitution Principle)

자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙 

인터페이스 분리 원칙 (Interface Segregation Principle)

한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. 하나의 일반적인 인터페이스 보다 여러개의 구체적인 인터페이스가 낫다.

의존 역전 원칙(Dependency Inversion Principle)

의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 겅듸 변화가 없는 것에 의존하라는 것. ex)구체적인 클래스 보다 인터페이스나 추상 클래스와 관계를 맺으라는 것.

객체 지향의 4가지 특성

추상화 

구현 세부 정보를 숨기는 일반 인터 페이스 혹은 추상클래스를 지정하는 행위 

상속 

더작은 단위로 클래스를 나눌수 있고 재활용이 가능하다

다형성

어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질

캡슐화

Data와 Function을 캡슐(Class) 혹은 컨테이너에 넣는것 

코드가 좀 더 구조화 되었고 함수나 메소드가 인수를 취할 필요가 없다

표시할 클래스의 속성과 숨길 속성을 정할 수 있다.

 

 

 

 

 

반응형

'프로그래밍 언어 > 코딩 상식' 카테고리의 다른 글

스택과 큐  (0) 2023.07.14
델리게이트(delegate)와 이벤트(event)  (0) 2023.06.28