01. 객체지향이란?
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, '객체'들의 상호작용(메시지 주고받기, 데이터 처리 등)으로 프로그램 로직을 구성하는 프로그램 패러다임.
1. 클래스 (Class)
- 객체의 상태와 행위를 정의. (클래스의 객체를 만들기 위한 설계 도면)
- 객체의 속성을 나타내는 데이터 필드(멤버 변수)와 행위를 나타내는 메소드(멤버 함수)로 구성.
2. 객체 (Object)
- 클래스의 Instance로, 실제로 메모리에 할당된 데이터.
- 상태를 나타내는 데이터와 행위를 나타내는 메소드를 가진다.
02. 객체 지향 프로그래밍(OOP)의 4가지 특징
1. 추상화 (Abstraction)
- 복잡한 것을 명확(단순)하게 하는 것. (중요한 부분에만 집중)
- 객체의 공통적인 특성을 추출하여 클래스(interface)로 정의할 수 있음.
- ex) '나'를 추상화하면 학교라는 관점에서는 학생, 생물학적 관점에서는 남자.
2. 상속 (Inheritance)
- 기존 클래스의 속성과 메소드를 새로운 클래스에 재사용할 수 있게 해주는 개념.
(Super class가 가진 것을 Sub class도 사용할 수 있는 것) - 코드의 재사용성과 확장성을 높일 수 있다.
3. 다형성 (Polymorphism)
- 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 것.
(같은 이름의 메소드나 연산자가 다른 상황에서 다르게 동작할 수 있는 능력) - 코드의 유연성을 높일 수 있다.
- ex) 메소드 오버로딩/오버라이딩
4. 캡슐화 (Encapsulation)
- 객체의 상태를 외부에서 직접 접근하지 못하도록 데이터와 메소드를 하나로 묶는 개념.
(데이터와 메소드를 하나의 캡슐(단위 ex. class...)로 결합하여 보호하는 것) - 캡슐화의 2가지 목적
- 사용 제어(데이터 보호): 개발자가 의도한 방식으로만 사용할 수 있도록 설계.
- 변경의 영향 최소화(데이터 은닉): 내부 코드 수정 시 사용자에게 영향 최소화.
2024.08.27 - [Java] - [Java] 07. 객체지향 프로그래밍 기본
[Java] 07. 객체지향 프로그래밍 기본
Chapter 1: 클래스(Class)와 객체(Object)클래스(Class)객체(Object)추상화(Abstraction) Chapter 2: 캡슐화(Encapsulation)데이터와 메소드의 결합접근 가시성 제어왜 캡슐화를 해야 하는가?객체 데이터정적 메소드
lightningtech.tistory.com
'Java' 카테고리의 다른 글
[Java] 05. 메소드와 파라미터* (0) | 2024.08.23 |
---|---|
[OOP] 객체지향 설계 원칙: SOLID (0) | 2024.08.23 |
[Java] 04. Statement와 Expression (0) | 2024.08.22 |
[Java] 03. 기본 데이터 (Primitive Data Type) (0) | 2024.08.22 |
[Java] 02. Java 프로그래밍 언어 개요 (0) | 2024.08.22 |