객체지향 프로그래밍이란?

Gunju Kim·2025년 3월 19일
0

필수시청 영상

목록 보기
6/32

📌 객체지향 프로그래밍(OOP)이란?

객체지향 프로그래밍이란 모든 데이터를 ‘객체(Object)’로 표현하고, 이 객체들을 조합하여 프로그램을 만드는 방식입니다.

  • 프로그램을 객체들의 상호작용으로 구성합니다.
  • 각 객체는 데이터(속성)기능(메서드)을 하나로 묶은 형태입니다.

예시:

자동차라는 객체는 데이터(색상, 모델명)기능(주행하기, 멈추기)을 갖고 있습니다.

📌 객체(Object)란 무엇인가요?

객체는 실생활에서 볼 수 있는 것처럼, 특정한 속성(상태)과 기능(행동)을 가진 대상입니다.

📌 객체지향 프로그래밍의 4대 원칙

객체지향 프로그래밍에는 대표적인 4가지 핵심 개념이 있습니다.

캡슐화 (Encapsulation)

  • 의미: 관련 있는 데이터(속성)와 기능(메서드)을 하나의 객체로 묶고, 내부 데이터를 외부에서 직접 접근하지 못하게 보호하는 개념입니다.
  • 장점: 내부 구현이 숨겨져 있어 보안성과 유지보수성이 높아집니다.

추상화 (Abstraction)

  • 의미: 복잡한 현실 세계를 단순화하여 필요한 부분만 나타내는 것입니다.
  • 장점: 복잡성을 줄이고 사용하기 편리한 형태로 표현합니다.
    예시:

    자동차의 세부 엔진 구조까지 알 필요 없이, ‘운전’ 기능만 사용하면 됨.

상속 (Inheritance)

  • 의미: 기존 객체(부모)의 특성을 그대로 물려받아 새로운 객체(자식)를 만드는 개념입니다.
  • 장점: 코드의 재사용성이 높아집니다.

예시:

차량 클래스 → 자동차 클래스, 자전거 클래스
자동차와 자전거는 차량의 공통 속성(이동)을 상속받습니다.

다형성 (Polymorphism)

  • 의미: 하나의 객체나 함수가 여러 가지 다른 형태로 동작할 수 있는 개념입니다.
  • 장점: 코드의 유연성이 높아지고 유지보수가 쉬워집니다.

예시:

같은 메서드 달리기(run)를 호출했을 때, 객체가 자동차냐 사람이냐에 따라 다르게 동작합니다.

클래스(Class)란?

  • 클래스는 객체를 만드는 설계도입니다.
  • 클래스는 객체의 구조(속성과 메서드)를 정의하며, 실제 객체(인스턴스)는 클래스를 기반으로 만들어집니다.

예시: Java

// 클래스 정의
class Car {
    String color;  // 속성
    String model;

    void drive() { // 기능(메서드)
        System.out.println("차가 주행 중입니다.");
    }
}

// 객체 생성(인스턴스화)
Car myCar = new Car();
myCar.color = "빨간색";
myCar.model = "Tesla";
myCar.drive(); // "차가 주행 중입니다." 출력

객체지향 프로그래밍의 장점

  • 코드의 재사용성이 높습니다.
  • 코드의 유지보수와 확장이 쉽습니다.
  • 현실 세계의 개념을 프로그램 안에 직관적으로 표현하여, 프로그래밍이 쉬워집니다.

객체지향 언어의 예시:
Java
C++
Python
C#
Kotlin
Ruby 등

🚩 한 줄 요약

객체지향 프로그래밍(OOP)은 현실 세계를 ‘객체’라는 개념으로 추상화하여, 객체 간의 상호작용을 통해 프로그램을 구성하는 방식으로, 캡슐화·추상화·상속·다형성의 특징을 갖고 있습니다.

profile
처음이라서 그래 가본적 없던 길에

0개의 댓글