1.손님이 커피숍에 들어간다

오브젝트 손님
오브젝트 커피숍

------------------

2.손님이 바리스타에게 가서 주문

오브젝트 바리스타

---------------------

3.손님이 메뉴판을 본다

오브젝트 메뉴판
오브젝트 메뉴목록
오브젝트 메뉴

---------------------

4.손님이 바리스타에게 아메리카노를 주문한다

---------------------

5.바리스타가 아메리카노를 만든다

---------------------

6.바리스타가 아메리카노를 손님에게 준다

-----------------------

객체지향 프로그래밍에서는 현실에서 생명이 없는 것들도 살아있는 것처럼 취급한다.

오브젝트들은 각자의 역할이 있고 협력을 한다

오브젝트 => 역할(부모클래스) => 책임(메서드)

오브젝트 => 협력 => 메시지(함수의 호출)

역할, 책임, 협력, 메시지 -- 네개가 합쳐져서 객체지향을 이룬다 

역할은 대체될 수 없고 (부모클래스, 추상클래스, 인터페이스) 그 아래 오브젝트는 대체 될 수 있다.
(Protoss=역할 Object=질럿,드라군)

책임 없이 데이터만 있는 애들 - 클래스 자료형 : Beans, Model, 데이터베이스의 테이블

----------------------

배열
- 빠르다, 생성 후 배열길이를 줄이거나 늘릴 수 없다

링크드 리스트
- 느리다, 배열길이를 줄이거나 늘릴 수 있다

어레이리스트
- 배열길이를 줄이거나 늘릴 수 있다
- 순차적으로 정렬되서 랜덤엑세스가 가능하다(검색효율이 뛰어나다)
- 수정 삭제시 링크드 리스트 보다 느리다

----------------------------

 

 

 

+ Recent posts