호텔
[TIL] Java 뱅킹, 호텔, 메모리구조, 캡슐화
✍ Today I Learned [뱅킹 시스템] 유효성 검사 로직을 추가했다. 고객번호를 받는 경우에는 최대 고객 수보다 많지 않아야 하고, 미개설 계좌(null)가 아니어야 한다. 이 부분이 아주 헷갈렸는데, 고객번호 대신 고객 이름을 받는 경우에는 findUser() 메서드 내에서 null 값 처리를 해주어야 연산이 가능하다!! 계속 NullPointerException 에러가 나서 한참을 머리 쥐어뜯었다.. 찾는 고객 이름이 없는 경우 에러 메시지를 출력한다. main 메서드를 최소한으로 줄이고 컨트롤러 클래스를 생성하여 각 메뉴의 작업을 메서드로 분리한다. 중요한 포인트! 개별적 클래스를 객체화 클래스 내부 데이터에 접근 접근할 때의 데이터 전달 static을 붙이면 메서드 영역에 할당된다. [호..
[TIL] Java 뱅킹 시스템, 호텔 객실 관리 프로그램
✍ Today I Learned [뱅킹 시스템 고객 특정하기] 지금까지 만든 뱅킹 시스템은 한 명의 고객만을 취급했다. 여러 고객을 입력받아 다음과 같이 고객을 특정해보자. Bank 클래스의 멤버 변수로 User객체의 배열인 users를 추가한다. 시스템의 시작 부분에서 최대 고객 수를 입력받고, 생성자 메서드를 이용하여 최대 고객 수만큼의 길이를 가진 users 배열을 생성한다. 계좌 개설 메뉴에서 고객의 정보를 입력받고, User객체를 생성함과 동시에 users배열에 할당한다. (현재 고객 수의 인덱스로 접근) 계좌 개설이 완료되면 현재 고객 수 변수를 증가시켜준다. Bank 클래스에서 고객이 입력한 이름을 파라미터로 전달받아 일치하는 이름의 User 객체를 리턴하는 findUser() 메서드를 생성..
[TIL] Java 버블정렬, 선택정렬, 퀴즈파티
✍ Today I Learned [버블 정렬 Bubble Sort] 버블 정렬이란? 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘이다. 시간 복잡도는 O(n^2), 공간 복잡도는 O(n)이다. 교환 연산(swap)이 많이 일어나기 때문에 비효율적이지만 구현이 매우 간단하고 직관적이다. 안정 정렬(Stable Sort)이다. 버블 정렬 참고자료 // 버블 정렬 int temp = 0; for (int i = 0; i intArr[j]) { // 왼쪽이 더 크다면 자리를 바꿔줌(swap) temp = intA..