절차지향 프로그래밍 

- 문제해결 흐름을 따라 ( 로직,알고리즘 ) 코드를 구성하고 구현. 대표적으로 C언어

 

OOP (Object Oriented Programming)

- 현실 세계에 존재하는 객체를 기반으로 객체 간의 관계를 통한 프로세스 진행

- 대표적으로 1. 캡슐화  2.상속  3.다형성의 특징을 지닌다.

 

1) 캡슐화

데이터와 연산과정을 내부에 숨기고, 필요한 인터페이스만 외부에 노출하여 사용하게 함

 

2) 상속

클래스의 상-하 관계 ( Is-a )

상속을 통해 속성과 기능이 자식에게 전달된다. 자식으로 갈수록 구체적이다.

-> 재활용이 가능하지만, 코드 재활용을 위한 상속은 X. 또한 구체 클래스의 상속도 X

-> Is-a 관계가 명확할때만 사용 

※ 상속보다는 합성(has-a)을 권장

 

합성 - 다른 클래스의 기능이 필요시, 내 클래스에 인스턴스 변수로 선언하고 기능을 사용하는 것.

 

3) 다형성

동일 요청에 대한 다른 반응

- 상속과 오버라이딩을 통한 구현

 

객체 모델링

객체를 구조화 하는 작업. 필요한 클래스들을 추상적으로 정의한다.

정적 모델 : 객체가 가질 수 있는 모든 상태와 행동을 시간 독립적으로 모델링

동적 모델 : 객체의 라이프 사이클 동안의 변화

 

추상화

실 세계의 모든것을 표현하기엔 어려우니, 특정 부분을 추출해서 표현

 

실습

객체 모델링 - 현실 세계에서 객체 선정, 속성과 기능 정의 ( 다형성 포함 )

다형성/상속/합성 관련 

주어진 클래스 다이어그램 참조하여 코드 구현

 

++ 추가로 공부할 것

List 자료구조 및 객체간 주고받는 상황 구현

json Library 

rest api 호출

+ Recent posts