- 객체
속성(state)과 행동(behavior)을 가진 독립적인 단위(사람과 동물, 개념이나 사상까지도 프로그래밍에서는 객체로 표현될 수 있다.)
예) 레고 블록 - 각각은 독립적인 역할과 기능을 가진다(객체)
레고로 만든 구조물 - 객체 간에 협력하여 하나의 프로그램이 완성된다.
- 객체지향 프로그래밍(OOP)
'세계는 수많은 객체로 이루어져 있으며, 객체 간 상호작용을 통해 사건이 발생한다' 라는 철학을 기반으로 한다.
필요한 정보를 한 곳에 모아 상태와 행동을 가지는 객체를 만든다.→객체들이 서로 협력하며 하나의 프로그램을 완성한다.
※객체지향 프로그래밍의 중요 개념들
| 구분 | 설명 |
| 객체(Object) | 상태(state)과 행동(behavior)을 가진 독립적인 존재 |
| 클래스(Class) | 객체를 만들기 위한 설계도 |
| 메시지 | 객체 간의 상호작용 방식 (메서드 호출) |
| 협력 | 여러 객체가 상호작용하며 프로그램을 구성 |
- 절차지향 VS 객체지향
-객체지향적 사고방식 : 기능 중심이 아닌 책임 중심의 사고
| 항목 | 절차지향(Procedural) | 객체지향(OOP) |
| 중심(초점) | 순서와 함수 중심 | 객체 중심(역할과 책임) |
| 재사용성 | 낮음 | 높음 |
| 유지보수 | 어렵고 반복이 많음 | 유연하고 모듈화 쉬움 |
| 예시 언어 | C, 초기 Python | Java, Kotlin, C# |
절차지향 → 객체지향으로의 리팩토링 여습을 많이 해두자.
↓객체지향이 유리한 상황
| 상황 | 객체지향이 유리한 이유 |
| 기능이 계속 추가되는 프로젝트 | 설계 변경 없이 객체 추가만으로 확장 가능 |
| 여러 개발자가 동시에 개발 | 각자의 책임이 명확하여 충돌 없이 개발 가능 |
| 테스트 및 유지보수가 필요한 시스템 | 단위 객체 테스트가 가능하고, 코드 수정 범위가 제한됨 |
| 재사용 가능한 라이브러리나 프레임워크 | 객체 단위로 분리되어 다양한 상황에서 재활용 가능 |
'자바 고급(JAVA)' 카테고리의 다른 글
| 객체지향 프로그래밍의 4가지 핵심 개념 - 캡슐화(Encapsulation) (0) | 2026.05.12 |
|---|---|
| 객체지향 프로그래밍의 4가지 핵심 개념 - 상속(Inheritance) (0) | 2026.05.12 |
| 객체지향 프로그래밍의 이해 - Garbage Collection(GC) (0) | 2026.05.06 |
| 객체지향 프로그래밍의 이해 - 자바 가상 머신(JVM) (0) | 2026.05.06 |
| 객체지향 프로그래밍의 이해 - 클래스와 객체 (0) | 2026.05.06 |