티스토리 뷰
객체 지향 프로그래밍
Object Oriented Programming
객체 지향 프로그래밍이란 프로그램을 상태(state)와 행위(behave)로 이루어진 객체라는 기본단위로 나누고, 이 객체들 간의 상호작용을 통해 프로그램을 설계하는 개념이자 방법론이다.
* 객체?
의사나 행위가 미치는 대상, 작용의 대상이 되는 쪽 (표준국어대사전)
즉, 인간 중심에서 객관적으로 인지될 수 있는 대상을 객체라고 한다.
객체지향 프로그래밍 특징 4가지
1. 추상화 (Abstraction)
여러 객체들의 공통적인 특징을 도출해 내는 것을 말한다.
2. 캡슐화 (Encapsulation)
데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것을 말한다.
'클래스'는 객체를 만드는 틀, '객체'는 틀을 통해 만들어진 실체를 의미한다.
* 정보은닉 (Inforamation Hiding)
- 다른 객체에 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용하는 것을 말한다. 접근 제어자를 통해 통제한다.
3. 상속성 (Inheritance)
이미 정의된 부모 클래스의 모든 속성과 기능을 자식 클래스가 물려받는 것을 말한다. 코드의 재사용이 목적으로 기능의 일부분을 변경해야 할 경우 해당 기능만 다시 수정(정의) 하여 사용할 수 있다.
* 다중 상속은 불가능
4. 다형성 (Polymorphism)
하나의 변수 또는 함수가 상황에 따라 다른 의미로 응답하는 것을 말한다.
- 오버라이딩 (Overrideing) : 부모 클래스의 메서드와 같은 이름, 매개변수를 재정의하는 것.
- 오버로딩 (Overloading) : 같은 이름의 함수를 여러 개 정의하고, 매개변수의 타입과 개수를 다르게 하여 경우에 따라 다르게 호출할 수 있게 하는 것.
객체지향 프로그래밍의 장점
1. 유지 보수가 용이하다.
수정해야 할 부분이 클래스 내부에 존재하기 때문에 해당 부분만 수정하면 된다.
2. 재사용이 용이하다.
기존에 만들어진 클래스를 이용할 수 있고, 상속을 통해 확장이 가능하다.
3. 코드를 이해하기 쉽다.
현실 세계와 유사한 사고를 통해 프로그램을 설계하므로 코드를 이해하기 쉽다.
4. 대형 프로젝트에 적합하다.
클래스 단위로 모듈화시켜 개발하므로 업무 분담이 쉽다.
객체지향 프로그래밍의 단점
1. 실행 속도가 느리고 메모리를 많이 사용한다.
컴퓨터의 처리 구조와 비슷해 실행 속도가 빠른 절차지향 프로그램에 비해 상대적으로 실행 속도가 느려지며, 불필요한 정보들이 같이 삽입될 수 있어 메모리를 많이 차지한다.
2. 설계 과정에 시간이 많이 투자된다.
클래스, 객체, 상속 등의 구조를 설계해야 하기 때문에 절차지향 프로그램에 비해 설계에 드는 시간이 길다.
참고
https://st-lab.tistory.com/151?category=872072
- Total
- Today
- Yesterday
- 래퍼 클래스
- BFS
- Stack
- recursion
- 구간 합 구하기
- Regex
- java
- 게리맨더링
- 제네릭
- 프로그래머스
- 알고리즘
- 백준
- 4796
- 15686
- OOP
- CS
- Wrapper Class
- 디자인 패턴
- 신규아이디추천
- 조합
- generic
- 와일드카드
- 하노이 탑
- 11659
- 재귀
- gof
- 11729
- 백트래킹
- 2529
- 순열
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |