본문 바로가기
Java Study

객체지향 프로그래밍(Object-Oriented Programming, OOP)의 특징

by xogns93 2024. 6. 27.

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 소프트웨어 설계와 개발의 패러다임으로, 프로그램을 객체(object)라는 단위로 구성하는 것을 중심으로 합니다. OOP의 주요 특징은 캡슐화(encapsulation), 상속(inheritance), 다형성(polymorphism), 추상화(abstraction)입니다. 이 네 가지 원칙은 객체지향 프로그래밍의 근간을 이루며, 소프트웨어의 구조와 동작을 정의하는 데 중요한 역할을 합니다.

 

1. 캡슐화 (Encapsulation)

캡슐화는 객체의 상태(데이터)를 보호하고, 객체 내부의 구현 내용을 숨기며, 객체 외부에서는 이를 알지 못하도록 하는 것입니다. 이를 통해 데이터의 무결성을 유지하고, 객체 간의 상호 작용을 명확하게 정의할 수 있습니다. 캡슐화는 주로 접근 제어자를 사용하여 구현됩니다.

2. 상속 (Inheritance)

상속은 새로운 클래스가 기존 클래스의 특성과 행동을 상속받아 재사용하는 것입니다. 이를 통해 코드의 재사용성을 높이고, 계층 구조를 만들 수 있습니다. 상속은 extends 키워드를 사용하여 구현됩니다.

3. 다형성 (Polymorphism)

다형성은 동일한 인터페이스나 부모 클래스를 통해 서로 다른 구현을 제공할 수 있는 능력입니다. 이는 메서드 오버로딩(Overloading)과 메서드 오버라이딩(Overriding)으로 구현할 수 있습니다.

4. 추상화 (Abstraction)

추상화는 복잡한 시스템에서 핵심적인 개념만을 모델링하는 것입니다. 이를 통해 복잡성을 줄이고, 중요한 세부 사항만을 강조할 수 있습니다. 추상화는 추상 클래스나 인터페이스를 사용하여 구현됩니다.

 

요약

  1. 캡슐화 (Encapsulation): 객체의 상태와 행동을 하나로 묶고, 외부에서 접근을 제한하여 객체의 무결성을 유지하는 것.
  2. 상속 (Inheritance): 기존 클래스를 기반으로 새로운 클래스를 생성하여 코드의 재사용성을 높이는 것.
  3. 다형성 (Polymorphism): 동일한 인터페이스나 부모 클래스를 통해 서로 다른 구현을 제공하는 능력.
  4. 추상화 (Abstraction): 복잡한 시스템에서 핵심 개념만을 모델링하여 복잡성을 줄이는 것.

이 네 가지 특징은 객체 지향 프로그래밍의 핵심 원리로, 이를 통해 복잡한 소프트웨어 시스템을 더 쉽게 설계하고 구현할 수 있습니다.

'Java Study' 카테고리의 다른 글

필드(Field)  (0) 2024.06.28
메서드(Method)와 생성자(Constructor)  (0) 2024.06.28
클래스(Class)의 개념  (0) 2024.06.27
배열(Array)과 리스트(List)  (1) 2024.06.26
Hello World  (1) 2024.06.24