JAVA - 7
카테고리: java
렌트카 대여 서비스로 간단한 시나리오 작성해보기
Customer.java // 고객 클래스
Customer
클래스는 고객 정보를 저장하고 처리하는 클래스입니다. 해당 클래스에는 다음과 같은 멤버 변수와 메서드가 포함되어 있습니다:
- 멤버 변수:
name
: 고객 이름을 저장하는 문자열 변수phoneNumber
: 고객 전화번호를 저장하는 문자열 변수username
: 고객 아이디를 저장하는 문자열 변수password
: 고객 비밀번호를 저장하는 문자열 변수priceRange
: 차량 가격대를 나타내는 정수 변수priceRangeText
: 차량 가격대를 나타내는 문자열 변수carType
: 차량 종류를 나타내는 정수 변수carTypeText
: 차량 종류를 나타내는 문자열 변수carSize
: 차량 크기를 나타내는 정수 변수carSizeText
: 차량 크기를 나타내는 문자열 변수manufacturer
: 제조사를 나타내는 정수 변수manufacturerText
: 제조사를 나타내는 문자열 변수carColor
: 차량 색상을 나타내는 정수 변수carColorText
: 차량 색상을 나타내는 문자열 변수Date
: 예약 날짜를 저장하는 문자열 변수cars
: 차량 목록을 저장하는 문자열 리스트
- 생성자:
Customer
: 기본 생성자로, 클래스의 멤버 변수들을 초기화합니다.
- 메서드:
inputInfo
: 고객 정보를 입력받는 메서드입니다. 이름, 전화번호, 아이디, 비밀번호를 입력받아 해당 멤버 변수에 저장합니다.pickDate
: 예약 날짜를 선택하는 메서드입니다. 사용자로부터 날짜를 입력받고, 올바른 형식의 날짜인지 확인한 후Date
멤버 변수에 저장합니다.login
: 고객 로그인을 처리하는 메서드로, 고객의 아이디를 출력합니다.searchCars
: 차량을 조회하는 메서드입니다. 사용자로부터 가격대, 차량 종류, 차량 크기, 제조사, 차량 색상을 입력받고, 해당 조건에 맞는 차량을 조회합니다.searchCarsWithConditions
: 입력받은 조건에 따라 차량을 조회하는 메서드입니다. 이 메서드는 실제로 차량 목록을 검색하는 로직이 구현되어 있습니다. 입력된 조건에 맞는 차량을cars
리스트에 저장하고, 결과를 출력합니다.
searchCarsWithConditions
메서드는 입력받은 조건에 따라 차량을 검색하는 로직을 구현한 메서드입니다. 이 메서드는 다음과 같은 동작을 수행합니다:
- 가격대 조건에 따라 차량을 추가합니다:
- 가격대가 30,000원에서 50,000원인 경우: “티볼리”와 “셀토스”를 리스트에 추가합니다.
- 가격대가 50,000원에서 100,000원인 경우: “아반떼”, “쏘렌토”, “카니발”을 리스트에 추가합니다.
- 가격대가 100,000원에서 200,000원인 경우: “제네시스 G80”, “벤츠-EQ EQS”, “벤츠 G클래스”, “BMW 7시리즈”, “그랜저”를 리스트에 추가합니다.
- 차량 종류 조건에 따라 차량을 필터링합니다:
- 세단을 선택한 경우: “아반떼”, “제네시스 G80”, “BMW 7시리즈”, “그랜저”를 리스트에 남기고, 나머지 차량은 제거합니다.
- SUV를 선택한 경우: “쏘렌토”, “티볼리”, “셀토스”, “벤츠-EQ EQS”, “벤츠 G클래스”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 승합차를 선택한 경우: “카니발”을 리스트에 남기고, 나머지 차량은 제거합니다.
- 차량 크기 조건에 따라 차량을 필터링합니다:
- 소형을 선택한 경우: “티볼리”, “셀토스”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 준중형 ~ 중형을 선택한 경우: “쏘렌토”, “제네시스 G80”, “벤츠 G클래스”, “아반떼”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 준대형 ~ 대형을 선택한 경우: “제네시스 G80”, “BMW 7시리즈”, “벤츠-EQ EQS”, “카니발”, “그랜저”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 제조사 조건에 따라 차량을 필터링합니다:
- 국산차를 선택한 경우: “아반떼”, “제네시스 G80”, “티볼리”, “셀토스”, “그랜저”, “카니발”, “쏘렌토”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 외제차를 선택한 경우: “벤츠-EQ EQS”, “벤츠 G클래스”, “BMW 7시리즈”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 차량 색상 조건에 따라 차량을 필터링합니다:
- 흰색을 선택한 경우: “티볼리”, “아반떼”, “쏘렌토”, “제네시스 G80”, “벤츠-EQ EQS”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 검은색을 선택한 경우: “셀토스”, “그랜저”, “카니발”, “벤츠 G클래스”, “BMW 7시리즈”를 리스트에 남기고, 나머지 차량은 제거합니다.
- 검색 결과를 확인합니다:
- 만약 차량 리스트가 비어있다면, “조건에 해당하는 차량이 없습니다. 다른 조건으로 검색해주세요.”라는 메시지를 출력합니다.
- 차량 리스트에 차량이 있는 경우, “조건에 해당하는 차량은 [차량1, 차량2, …] 입니다.”라는 메시지를 출력합니다.
- 최종적으로 차량 리스트를 반환합니다.
이렇게 searchCarsWithConditions
메서드는 입력된 조건에 따라 차량을 필터링하고, 해당하는 차량 리스트를 반환합니다.
댓글 남기기