객체지향 프로그래밍(OOP)과 특징

고라니·2023년 12월 1일
0

TIL

목록 보기
48/67

프로그래밍 공부를 하다보면 객체지향 프로그래밍에대해 많이 듣게된다.
처음 궁굼증에 찾아봤을 때 이해를 못했던 기억이 난다.
그래서 객체에 대해 생각 해보았다.

우리는 가끔 길가에서 고양이들을 마주치는 경우가 있다.
털의 색, 눈의 색, 줄무늬 모양 등이 달라도 우리는 '고양이'라고 인식한다.
또한 고양이와 유사하지만 다른 특징을 가진 종인 강아지는 고양이와 구분된다.
개도 마찬가지로 털의 색이 달라도, 귀의 모양이 달라도 우리는 '개'라고 인식한다.
이렇게 우리 인간들은 복잡한 세계를 이해하고 다루기 위해 다양한 객체들을 인식하고 구분한다.
이를 통해 우리는 추상적인 개념을 형성하고 판단하고 상호작용한다.

이러한 개념을 소프트웨어 프로그래밍에 적용한 것이 바로 객체지향 프로그래밍이다.
각 객체는 특정한 기능을 가지며, 객체 간의 상호 작용을 통해 복잡한 소프트에어 시스템을 이해하고 구축할 수 있다. 이러한 방식은 인간이 이해하기 쉬우며 효율적인 소프트웨어 설계를 가능하게 한다.

객체지향 프로그래밍 방식을 제대로 사용하기 위해서는 몇가지 특징과 원칙을 이해하는 것이 중요하다!

객체지향 프로그래밍(Object-Oriented Programming)

컴퓨터 프로그래밍의 패러다임 중 하나로 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독럽된 단위, 즉 객체들의 모임으로 파악하고자 하는 것

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 쉽게 만들며 학습하기 쉽게 만들며 개발과 보수를 간편하게 한다. 또한 보다 직관적인 코드분석이 가능하다.

객체지향 프로그래밍 특징

1. 추상화(Abstraction)

  • 복잡한 시스템에서 핵심적인 개념 또는 기능을 간추려 나타내는 것을 뜻함(불필요한 세부 사항들을 제거하고 가장 본질적이고 공통적인 부분 추출하여 표현)
  • Swift에서는 클래스와 구조체 등을 이용하여 객체를 생성한다.

2. 캡슐화(Encapsulation)

  • 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶는것을 의미
  • 클래스 내부의 상태(프로퍼티)는 외부에서 직접 접근할 수 없도록 private 같은 접근 제어자를 사용하여 제한한다, 직접 적인 접근 대신 메서드를 통해 상태에 접근하고 수정하게 한다.

3. 상속(Ingeritance)

  • 상속은 이미 존재하는 클래스의 특성(프로퍼티와 메서드)을 하위 클래스가 재사용하는 것
  • 상속을 통해 코드의 재사용성을 높이고 계층 구조를 구성할 수 있다.

4. 다형성(Polymorephism)

  • 다형성은 하나의 인터페이스나 메서드가 여러 행태로 동작할 수 있는 능력을 말한다.(어떤 객체의 속성이나 기능이 맥락에 따라 다른 역할을 수행)
  • 다형성을 통해 여러 객체가 동일한 인터페이스를 공유하면서 각각의 객체는 자신에게 적합한 방식으로 작동할 수 있다.
  • 다형성은 Overloading과 Overriding을 통해 구현된다.
profile
🍎 무럭무럭

0개의 댓글