객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍 패러다임 중 하나로, 실세계의 사물 또는 실제로 존재 가능한 것을 객체로 모델링하여 프로그램을 구성하는 방법입니다.
잠깐🤚 그럼 객체(Object)란 뭘까요?
각 객체는 속성(Properties)과 행동(Methods)을 가지며, 이들은 각각 객체의 상태와 객체가 수행할 수 있는 작업을 나타냅니다.
객체의 속성(Properties)
속성은 객체의 특성, 상태, 데이터를 의미합니다. 예를 들어, '자동차'라는 객체가 있다면, 이 객체의 속성은 색상, 브랜드, 모델, 연식 등이 될 수 있습니다.
객체의 행동(Methods)
행동은 객체가 수행할 수 있는 작업이나 기능을 의미합니다. '자동차' 객체의 경우, 주행하기(drive), 멈추기(stop), 가속하기(accelerate) 등의 행동을 가질 수 있습니다.
객체의 특징
- 캡슐화(Encapsulation): 객체는 자신의 데이터(속성)와 그 데이터를 조작하는 메서드를 하나의 단위로 묶어 관리합니다. 이를 통해 객체의 상세한 구현 내용을 숨기고(정보 은닉), 외부에서는 객체가 제공하는 메서드를 통해서만 상호작용할 수 있게 합니다.
- 독립성: 객체는 독립적으로 존재하며, 각 객체는 고유의 속성과 메서드를 가집니다. 객체 간에는 메시지를 통해 상호작용합니다.
컴퓨터 과학에서 추상화란?
추상화(Abstraction)는 복잡한 현실 세계를 단순화하여 모델링하는 과정에서, 필요한 부분만을 추려내고 불필요한 정보는 제거하여 복잡도를 관리할 수 있게 하는 핵심적인 개념입니다.
프로그래밍과 소프트웨어 설계에서 추상화는 문제의 핵심적인 부분에 초점을 맞추게 해주며, 이를 통해 보다 쉽게 코드를 이해하고 유지보수할 수 있습니다.
은행 애플리케이션을 만들 때 고객에 대해 알아야 할 정보가 많을 수 있습니다. 이름, 주소, 휴대폰 번호 같은 기본 정보부터, 좋아하는 음식이나 취미처럼 덜 중요한 정보까지 다양하죠. 하지만 은행 업무에는 고객의 기본 정보만 필요하고, 좋아하는 음식이나 취미 같은 정보는 필요 없습니다. 이처럼 애플리케이션에 필요한 핵심 정보만 남기고 나머지는 빼는 과정을 추상화라고 합니다. 추상화를 통해 중요한 정보에 집중하면서, 은행 애플리케이션을 더 효율적으로 만들 수 있습니다.
'Java' 카테고리의 다른 글
객체에 값 할당하기 (0) | 2024.04.15 |
---|---|
클래스와 객체 (0) | 2024.04.15 |
이중 for 구문 (연습문제) (0) | 2024.04.12 |
Power JAVA 1장 Programming (0) | 2024.04.12 |
JAVA의 특징 (0) | 2024.04.12 |