카테고리 없음
객체 간의 협력 (Collabration) + 예제 + 복습
giggs
2021. 12. 26. 18:23
객체 지향 프로그래밍에서의 협력
- 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐
- 협력을 위해서는 필요한 메시지를 전송하고 이를 처리하는 기능이 구현되어야 함
- 매개 변수로 객체가 전달되는 경우가 발생 ( 여러 버스 중 내가 탄 버스, 여러 상품 중 내가 고른 상품 등)
- 학생 클래스 / 버스 클래스가 아닌 노란 버스, 핸드폰 등
객체 협력의 예
버스를 탄다 -
학생의 돈은 줄어들 것이다.
버스의 수입은 증가 승객 수 증가
......
쭈욱
객체간 상호관계 맺는 것이
객체 간의 협력
예제 ) 버스와 지하철을 타는 프로그래밍
James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다.
James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다.
Tomas는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다.
두 학생이 버스와 지하철을 타는 상황을 구현해 봅시다.
학생 클래스 먼저
매개변수 지정
학생정보 생성자
버스 생성자
take메서드
지하철 생성자
take메서드
출력 생성자
아직 bus 하고 subway 없고 take라는 메서드 없어서 만들어줘야 함
버스 변수들
버스 생성자 만들어줌
take 메서드 만들어줌
출력문
비슷하게 subway
test class 만들어서 테스트
학생 2명 만들고
버스 번호 만들고
버스타는 거 만들고
지하철 노선 만들고
지하철 타는거 만들고
학생정보 출력
버스/지하철 정보 출력
복습 방법 : 다른 class 다 없애고 test 클래스에서 거꾸로 class들 만들어 가보기 추천
복습 - 다음과 같은 상황을 구현해 봅시다.
앞의 예제에서 Edward는 지각을 해서 택시를 타야 했습니다.
20000원을 가지고 있었는데 10000원을 택시비로 사용했습니다.
택시는 '잘나간다 운수' 회사 택시를 탔습니다.
출력결과
review
코드들 하나하나 어떤 의미고 왜 이렇게 쓰였는지를 생각하며
한번 쭈욱 따라서 프로그래밍하였다.
객체를 선언하고, 변수들을 선언하고, 생성자를 만들어
서로 호출하고, 협력하여 사용했다.
인상 깊었던 부분은 take 메서드 부분이었다.
학생이 버스를 탈 때의 상황과 지하철 탈때의 상황을 각각 구현해놓고
버스 or지하철에서 take 상황이 넘어왔을 때의 변화를 메서드.
학생 입장에서는 money가 - , 버스 or 지하철에서는 money +
실생활의 모습이 들어가 있는 느낌이 팍팍
GOOD :)
카페에서 음료를 주문할 때
아메리카노를 시킨 나와
카페라테를 시킨 친구
총 지불해야 할 돈과 카페의 수입과 카페의 고객 수
프로그래밍해볼까?ㅎㅎ
실생활에 여러 가지를 적용할 수 있는 것 같아서 흥미로웠다.