TIL)프로그래밍 기초_23.06.08(팀과제)

주민·2023년 6월 8일
0

TIL

목록 보기
14/84

호텔 예약 프로그램 담당하는 부분 작업 할 예정이다.

문제

호텔, 고객 정보를 각각 두고 고객이 소지금에 맞춰 객실과 날짜를 정해 예약

  • 객실은 객실 당 하루에 한 사람만 예약이 가능
  • 예약 성공시 에약번호(uuid)를 받는다.
  • 고객은 본인의 예약 목록을 조회 할 수 있고 호텔은 전체 조회 가능
  • 고객은 예약 취소 가능

역할 분담

-> 전체를 예약, 취소, 예약조회(전체), 예약조회(1건고객용), 유지보수로 역할을 나눴고 예약조회(1건고객용)을 담당하게 됐다.


문제 풀기

고객,예약, 룸 클래스의 기본 정보를 주고 호텔에 메서드, 메인에서 실행
룸과 고객 정보는 List로 저장&출력

  • 예약조회
    -> 예약완료시에 생성된 예약번호로 예약리스트에서 찾아 출력, List에 예약 데이터가 있어 반복문으로 하나씩 입력한 예약번호와 비교하는 방식으로 진행하기로 했다.

오류 & 해결
1. 팀원 분이 메서드 예시로 주신 코드가 있었는데 아래와 같은 방식이라 return이 자꾸 오류가 나서 여러 방법을 찾아봤다.

public List<Reservation> 변수명(){}

return 타입 위치에 List가 들어가 있는 상황이라 return을 맞춰주거나 수정 하는 방법을 생각 했다.

  • 가장 단순하게 List -> void 로 변경
  • return null 로 주기
  • List를 메서드 내부에 선언하고 해당 리스트를 return로 주기

예약번호에 맞는 예약정보를 찾아줘야 하는 상황이라 return을 줄 수 있는 세번째로 진행하게 되었다.


  1. 실제로 실행 시켜보니 만든 배열에 값이 들어가지 않았다.
    팀원분이 같이 봐주시면서 이유를 찾아주셨다.
  • 기존 코드
for (int i = 0; i < reservations.size(); i++) {
  if(reservationId == reservations.get(i).getReservationId()){
    reservationConfirm.add(reservations.get(i));
        }
  • 변경된 코드
    String이다 보니 == 가 아니라 equals을 써야 하는데 실행이 안되진 않고 데이터 else로 처리되서 저장되지 않은거 같다. 수정하니 잘 들어온다.
for (int i = 0; i < reservations.size(); i++) {
  if(Objects.equals(reservationId, reservations.get(i).getReservationId())){
    reservationConfirm.add(reservations.get(i));
        }

알게된 점

메서드 리턴 타입에는 다양한 자료형이 들어간다.
-> 기본 자료형(int, long 등)
-> void : 아무것도 반환하지 않음
-> 참조형 : 배열, 클래스, 인터페이스
(메서드가 객체의 주소를 반환하는 것)

0개의 댓글

관련 채용 정보