✍ Today I Learned
- Making with tools for web!
- 최대한 많이 만들어보면서 체득하자!
[클래스를 분리하여 뱅킹 시스템 만들기 2]
- 소속 관계를 보면 고객이 계좌를 가지고 있다. 객체 관계성 설정에 대해 고민하자.
- 착각했던 부분은 고객이 가진 현금 보유액을 계좌 객체를 생성하면서 내 맘대로 입금시켜버린 것. 고객에게 입금의 자유를..
- 객체의 getter와 setter를 로직에 맞게 수정하였는데 추후 단일 값이 필요한 상황이 생길 수 있기 때문에 차라리 새로운 메서드를 생성하는 것이 나을 듯.
- Banker의 지속성을 위해 메뉴 부분을 while문으로 설정한다.
- 클래스의 정보 값을 알려주는 toString() 메서드 이클립스 단축키 alt+shift+s > s
- 주로 필드를 생성하면 getter, setter는 기본으로 생성한다. 이후에 필요 없다면? 지우면 된다.
- 클래스 분석을 어떻게 하느냐에 따라 전혀 다른 로직이 나올 수 있다는 걸 깨달았다.
- 오버 로딩된 생성자를 사용한다면 보통 기본 생성자(default constructor)를 선언해둔다.
public User() {
this.name = "";
this.cashAmount = 0;
}
public User(String name) {
this.name = name;
this.cashAmount = 0;
}
public User(String name, int cashAmount) {
this(name);
this.cashAmount = cashAmount;
}
public User(String name, int cashAmount, BankAccount account) {
this(name, cashAmount);
this.account = account;
}
[뱅킹 시스템 구체화]
- 지금까지 만든 뱅킹 시스템의 코드는 Banker 클래스의 메인 메서드에서 작동하기 때문에 메모리를 고려한다면 분리 작업이 필요하다.
- 은행원이 있고 고객이 있고 계좌가 있다 뭐가 없지? 은행!
- 각 객체는 서로 연관 관계가 없다. 유기적으로 돌아가는 이유는 데이터를 전달하는 메서드의 파라미터 때문이다.
- 어떤 데이터를 전달하고, 어떤 데이터를 리턴할지를 명확하게 설정해야 한다.
- 생성자 메서드 내에서는 직접적인 로직을 펼치지 않는 것이 좋다.
- 변수 이름 한 번에 바꾸는 이클립스 단축키 : 변수 클릭 > alt+shift+r
[정보의 은닉화]
- 객체 지향에서 정보의 은닉화(data hiding)란? 사용자가 굳이 알 필요 없는 정보를 사용자로부터 숨김으로써 언제나 최소한의 정보만으로 프로그램을 손쉽게 사용할 수 있게 하는 것을 의미한다.
- 멤버 변수와 속성은 private으로 / getter, setter는 public으로 설정하여 외부에서 private으로 설정된 정보를 볼 수 없도록 한다.
'📝 TIL' 카테고리의 다른 글
[TIL] Java 뱅킹, 호텔, 메모리구조, 캡슐화 (0) | 2022.05.18 |
---|---|
[TIL] Java 뱅킹 시스템, 호텔 객실 관리 프로그램 (0) | 2022.05.17 |
[TIL] Java 퀴즈파티, 생성자, 뱅킹 시스템 (0) | 2022.05.13 |
[TIL] Java 메서드, 오버로딩, 재귀호출, 클래스 (0) | 2022.05.12 |
[TIL] Java 버블정렬, 선택정렬, 퀴즈파티 (0) | 2022.05.11 |