Post

[Java] 객체 지향 프로그래밍(OOP) 정리

OOP(Object-Oriented Programming) 정리

OOP란?

  • 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 개발 패러다임 중 하나로, 현실 세계의 개체(Object)를 모델링하여 소프트웨어를 구성하는 방식
  • 이 패러다임은 프로그램을 객체(Object)라는 기본 구성 요소들로 나누고, 이러한 객체들 간의 상호 작용을 통해 프로그램을 설계하고 구현

OOP의 주요 특징

1. 캡슐화 (Encapsulation):

  • 객체는 데이터와 해당 데이터를 조작하는 메서드(함수)를 하나로 묶어 캡슐화
  • 이는 정보 은닉을 통해 객체의 내부 구현을 외부에서 감춤으로써 객체의 안정성과 재사용성을 높인다.

2. 상속 (Inheritance):

  • 상속은 기존 클래스의 특성을 그대로 이어받아 새로운 클래스를 만들 수 있게 함
  • 이로써 코드의 재사용성이 증가하며, 소프트웨어의 구조가 유연해짐

3. 다형성 (Polymorphism):

  • 다형성은 동일한 인터페이스를 사용하여 다른 동작을 수행하거나 객체를 다양하게 처리할 수 있는 능력을 말함
  • 이는 코드의 유연성을 높이고, 코드의 가독성을 향상시킨다.

4. 추상화 (Abstraction):

  • 추상화는 복잡한 시스템에서 핵심적인 개념 또는 기능을 간추려 내는 과정을 말함
  • 객체 지향 프로그래밍에서는 클래스를 통해 추상화를 구현하고, 객체는 이러한 추상화된 개념을 구체화

5. 클래스와 객체 (Class and Object):

  • 클래스는 객체를 생성하기 위한 일종의 틀 또는 설계도로, 객체의 속성과 메서드를 정의
  • 객체는 이러한 클래스를 기반으로 생성된 실체로, 클래스에서 정의한 속성과 메서드를 가진다.

객체 지향 프로그래밍은 현실 세계의 개념을 모델링하고 이를 기반으로 소프트웨어를 설계함으로써 코드의 가독성, 재사용성, 유지보수성 등을 향상시킬 수 있고, Java, C++, Python, C# 등 다양한 프로그래밍 언어에서 객체 지향 프로그래밍을 지원

This post is licensed under CC BY 4.0 by the author.