뱅킹시스템
[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 Making with tools for web! 최대한 많이 만들어보면서 체득하자! [클래스를 분리하여 뱅킹 시스템 만들기 2] 소속 관계를 보면 고객이 계좌를 가지고 있다. 객체 관계성 설정에 대해 고민하자. 착각했던 부분은 고객이 가진 현금 보유액을 계좌 객체를 생성하면서 내 맘대로 입금시켜버린 것. 고객에게 입금의 자유를.. 객체의 getter와 setter를 로직에 맞게 수정하였는데 추후 단일 값이 필요한 상황이 생길 수 있기 때문에 차라리 새로운 메서드를 생성하는 것이 나을 듯. Banker의 지속성을 위해 메뉴 부분을 while문으로 설정한다. 클래스의 정보 값을 알려주는 toString() 메서드 이클립스 단축키 alt+shift+s > s 주로 필드를 생성하..
[TIL] Java 퀴즈파티, 생성자, 뱅킹 시스템
✍ Today I Learned 오늘은 여러 퀴즈 문제를 풀었다. 확실히 자바스크립트로 한 번 풀어봤던 문제들이라 자바로도 어렵지 않게 풀 수 있었다. 가장 어려웠던 부분은 각 클래스를 연결하여 하나의 큰 개념을 만들어내는 것이었는데 클래스를 분석하는 작업이 선행되어야 한다는 걸 깨달았다. 클래스를 분석하는 작업은 추상화를 의미한다. 생성하려는 객체가 무엇이고, 어떤 것들이 포함되어야 할지 항상 생각하자. System.out.printf("%.2f"); - DecimalFormat 외에 소수점을 조정할 수 있는 방법. (추천 방식은 아님) 하나의 패키지 안에 같은 이름의 클래스를 둘 이상 정의할 수 없다. (패키지가 다르면 같은 이름 가능) [생성자 Constructor] 생성자란? 객체의 생성과 동시에..