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

지우·2023년 1월 26일
0

CNU SW 아카데미 2기

목록 보기
6/10

객체 지향 프로그래밍

프로그램을 객체로 구성하는 것. 프로그램이 거대화하며 등장했다.

어떻게 큰 프로그램을 만들 것인가? → 작게 객체로 나눠서 만들고 합친다는 개념이다.

프로그램의 동작을 객체들에게 나눠서 수행시킨다.

객체

작은 기능을 수행하고, 객체끼리 서로 협력한다. 객체는 type 으로 구분한다. type은 일반 자료형뿐만 아니라, 생성한 class 도 해당한다.

특성

1. 캡슐화

  1. 완성도
  2. 정보 은닉 (접근 지정자 사용)

의 특징을 갖는다.

객체는 스스로 동작 가능해야하므로, 외부에 의존 or 접근을 제한할 필요가 있다.

2. 상속

공통된 기능을 여러 객체에게 전달하고 싶다는 목적은 오해이다.

추상적인 대상을 구체화하고 싶을 때 사용한다.

3. 추상화

상위가 항상 하위보다 추상적이어야 한다.

4. 다형성

위를 통해 얻을 수 있는 것으로, 다양한 type으로 표현 가능하다.

오버라이딩 / 오버로딩으로 다형성 구현 가능.

  • 오버라이딩 - 상위 클래스의 추상 메소드를 같은 이름, 같은 반환값, 같은 매개변수로 메소드 로직을 새롭게 정의하는 것.
  • 오버로딩 - 매개변수가 다른 동일한 메소드를 여러 개 정의하는 것.

객체 지향 설계

UML 통해 설명 가능 (클래스 다이어그램…)

profile
기록용

0개의 댓글