객체 지향 (코드스테이츠)

thdy3k·2023년 11월 6일
0

목표

  • 객체 지향 프로그래밍
  • 캡슐화
  • 추상화
  • 상속
  • 다형성

과정

0. 객체 지향 프로그래밍
컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

<객체 지향 프로그래밍 4가지 특징>

1. 캡슐화

  • 데이터와 기능을 하나의 단위로 묶는 것.
  • 은닉(hiding) : 구현은 숨기고, 동작은 노출시킴
  • 느슨한 결합(Loose Coupling)에 유리 : 언제든 구현을 수정할 수 있음.

2. 추상화
추상화는 내부 구현은 아주 복잡한데, 실제로 노출되는 부분은 단순하게 만든다는 개념입니다.

예를 들어 전화라는 객체가 있다면, 그 안에는 스피커와 마이크가 존재하고, 서킷 보드 등이 존재하는 등 내부 구현이 되어 있을 것입니다.

그러나 실제로 우리가 사용할 때에는, 이러한 존재에 대해서는 생각하지 않고 단순히 수화기를 들고 버튼을 눌러서 해결하는 것으로 인터페이스(interface)를 단순화할 수 있습니다.

3. 상속
상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것입니다.

예를 들어, 사람(Human)이라는 클래스가 있다고 가정해 봅시다. 사람은 기본적으로 이름과 성별, 나이와 같은 속성, 그리고 먹다, 자다 등과 같은 메서드가 있다고 볼 수 있습니다.

추가적으로 학생(Student)이라는 클래스를 작성한다고 생각해 봅시다. 그런데 이때 앞서 구현했던 사람(Human) 클래스의 속성과 메서드를 다시 구현한다면 비효율적일 것입니다. 학생의 본질은 결국 사람이므로, 상속을 이용하여 학생(Student) 클래스는 사람(Human) 클래스를 상속받을 수 있습니다. 학생은 추가적으로 학습 내용, 공부하다 와 같은 속성/메서드를 추가합니다.

4. 다형성
"말하다"라는 동작의 본질은 "입으로 소리를 내다"를 의미합니다. 그러나, 각기 다른 동물들이 "말할 때" 제각각의 소리를 내는 것처럼, 객체 역시 똑같은 메서드라 하더라도, 다른 방식으로 구현될 수 있습니다.

<객체지향의 장단점>

- 객체지향의 장점

1.코드 재사용이 용이하다
2.유지보수가 쉽다
3.대형 프로젝트에 적합

- 객체지향의 단점

1.처리속도가 상대적으로 느리다.
2.객체가 많으면 용량이 커질 수 있다.
3.설계시 많은 시간과 노력이 필요하다.

0개의 댓글