C언어

[C언어] OOP 공부 (1)

_minit 2024. 11. 12. 12:19

OOP(Object-Oriented Programming, 객체 지향 프로그래밍)은 프로그램을 여러 객체로 구성하여 개발하는 프로그래밍 패러다임이다. 각 객체는 데이터(속성, 변수)와 동작(메서드, 함수)을 포함하고 있어, 현실 세계의 개체를 모델링하고 이해하기 쉽게 만들어준다.

 

OOP의 주요 개념

  1. 객체(Object): 프로그램 내에서 실제로 동작하는 데이터와 기능의 단위이다. 예를 들어, 자동차 프로그램에서는 Car라는 객체를 만들고, 이 객체가 속도, 연료량과 같은 속성과 주행, 정지와 같은 동작을 포함할 수 있다.
  2. 클래스(Class): 객체를 정의하는 청사진(템플릿)이다. 객체를 생성하기 위한 구조로, 속성과 메서드를 정의한다. 예를 들어, Car 클래스는 모든 자동차 객체가 따라야 할 속성과 메서드를 정의하며, 이를 바탕으로 실제 객체가 만들어진다.
  3. 캡슐화(Encapsulation): 객체의 속성과 메서드를 외부에서 접근할 수 없도록 숨기는 것을 의미한다. 데이터의 무결성을 유지하고 외부로부터 객체의 내부 상태를 보호한다. 보통 private, protected, public과 같은 접근 제한자를 사용하여 구현한다.
  4. 상속(Inheritance): 기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)가 물려받는 것이다. 이를 통해 코드의 재사용성을 높이고, 유지보수를 용이하게 한다. 예를 들어, Car 클래스가 있을 때, SportsCar나 Truck과 같은 자식 클래스가 이를 상속받아 추가적인 속성을 더할 수 있다.
  5. 다형성(Polymorphism): 같은 이름의 메서드가 여러 클래스에서 다른 방식으로 동작하도록 하는 것이다. 다형성은 오버로딩(overloading)과 오버라이딩(overriding)을 통해 구현되며, 이를 통해 코드의 유연성과 확장성을 높인다. 예를 들어, move()라는 메서드가 Car와 Bike 클래스에서 각각 다르게 구현될 수 있다.
  6. 추상화(Abstraction): 객체의 불필요한 세부 사항은 숨기고 중요한 정보만 노출하는 것을 의미한다. 추상 클래스를 통해 인터페이스만 제공하고 구체적인 구현은 상속받는 클래스가 하도록 하여, 복잡한 시스템을 단순화할 수 있다.

 

OOP의 장점

  • 코드 재사용성: 상속과 다형성을 통해 중복을 줄이고, 클래스 재사용이 용이하다.
  • 유지보수성: 클래스와 객체로 분리된 구조 덕분에 코드 수정 및 확장이 쉽다.
  • 모듈화: 각 객체가 독립적이므로, 특정 부분만 테스트하거나 수정하기 쉽다.
  • 현실 세계의 모델링: 객체와 클래스는 현실 세계의 사물과 유사하게 모델링할 수 있어 이해하기 쉽다.
728x90

'C언어' 카테고리의 다른 글

[C언어] OOP 공부 (2)  (1) 2024.11.13
티스토리 기본모드 수식 삽입  (2) 2024.11.13
[C언어] strcmp() 함수  (1) 2024.11.07
[C언어] NULL과 null  (7) 2024.11.04
[C언어] Call by Value, Call by Reference란?  (0) 2024.11.04