Java

[OOP] 객체 지향 프로그래밍(OOP)의 정의와 4가지 특징 *

Joo.v7 2024. 8. 23. 13:24

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