오늘 ONEUL
오늘의 개발
오늘 ONEUL
전체 방문자
오늘
어제
  • 오늘의 개발 (248)
    • 📝 TIL (121)
    • 💡 Projects (6)
      • 드로잉 게임 [눈치 코치 캐치!] (4)
      • 익명고민상담소 [대나무숲] (2)
    • 🌎 Web (47)
      • Spring (3)
      • Java (14)
      • JavaScript (16)
      • CSS (10)
      • HTML (4)
    • 📚 Database (7)
    • 👾 Trouble Shooting (3)
    • 📊 Algorithm&SQL (39)
    • 😺 Git (1)
    • 📖 Books (7)
      • 자바 객체 지향의 원리와 이해 (7)
    • 📁 ETC (2)
    • 되돌아보기 (15)

블로그 메뉴

  • 😺 Github
  • 🍀 NAVER Blog

인기 글

최근 댓글

최근 글

태그

  • MySQL
  • JavaScript
  • Til
  • Algorithm
  • Java
  • 프로그래머스
  • 자바
  • 알고리즘
  • 자바스크립트
  • 항해99

티스토리

hELLO · Designed By 정상우.
오늘 ONEUL

오늘의 개발

📝 TIL

[TIL] Java 뱅킹, 호텔, 메모리구조, 캡슐화

2022. 5. 18. 21:40

✍ Today I Learned

[뱅킹 시스템]

  • 유효성 검사 로직을 추가했다. 고객번호를 받는 경우에는 최대 고객 수보다 많지 않아야 하고, 미개설 계좌(null)가 아니어야 한다.
  • 이 부분이 아주 헷갈렸는데, 고객번호 대신 고객 이름을 받는 경우에는 findUser() 메서드 내에서 null 값 처리를 해주어야 연산이 가능하다!! 계속 NullPointerException 에러가 나서 한참을 머리 쥐어뜯었다.. 찾는 고객 이름이 없는 경우 에러 메시지를 출력한다.
  • main 메서드를 최소한으로 줄이고 컨트롤러 클래스를 생성하여 각 메뉴의 작업을 메서드로 분리한다.
  • 중요한 포인트!
    • 개별적 클래스를 객체화
    • 클래스 내부 데이터에 접근
    • 접근할 때의 데이터 전달
  • static을 붙이면 메서드 영역에 할당된다.

자바의 메모리 구조

 

[호텔 객실 관리 프로그램]

  • buildHotel → initializeRooms → makeRoomNum 순서로 메서드 연결해서 기능으로 전부 분리한다.
  • 연산에서 데이터 타입이 String으로 나와야 하는 부분은 String.valuOf()를 추가해 더 확실하게 만들어준다.
  • 전체 객실 상세 조회, 특정 객실 상세 조회, 특정 호실 투숙객 조회, 투숙객 전체 조회, 투숙객 이름으로 조회까지 전부 구현해보았다.
  • 호텔 구조 자체도 2차원 배열이고, 투숙객도 배열도 받다 보니 투숙객 전체 조회에서 5번(...)의 제어문을 사용했는데 더 나은 방법이 있을지 고민해볼 필요가 있다.
  • 배열을 전체 탐색한다면 for문 보다 forEach문이 낫다.

 

[캡슐화 encapsulation]

  • 캡슐화란? 메서드 안의 일을 사용자로부터 숨겨야 한다는 개념이다.
  • 캡슐화와 은닉화의 차이점은? 속성의 접근을 제어하는 것을 은닉화, 메서드의 내부를 알지 못하도록 하는 것을 캡슐화라고 한다.
  • 데이터 보안을 강화하기 위해 반드시 지켜져야 하는 객체지향의 특징 중 하나이다.
  • 메서드의 네이밍을 추상적으로 명명하여 기능을 특정하면 사용자는 내부 로직을 알 수 없으면서, 기능만 알고 사용하게 된다.
저작자표시 비영리 변경금지 (새창열림)

'📝 TIL' 카테고리의 다른 글

[TIL] Java 인터페이스, 내부클래스, 예외처리  (0) 2022.05.20
[TIL] Java 빌트인 패키지, 접근제어자, 상속, 오버라이딩, 다형성, 추상 클래스  (0) 2022.05.19
[TIL] Java 뱅킹 시스템, 호텔 객실 관리 프로그램  (0) 2022.05.17
[TIL] Java 뱅킹 시스템, 은닉화  (0) 2022.05.16
[TIL] Java 퀴즈파티, 생성자, 뱅킹 시스템  (0) 2022.05.13
    오늘 ONEUL
    오늘 ONEUL
    Backend Engineer ㅣ 어제보다 나은 오늘, 재밌는 건 오늘부터!

    티스토리툴바