[우아한테크코스] 3월 19일 TIL
오늘 배운 것
- 체스 미션 진행
- 엘레강트 자바 뽀개기
체스 미션 진행
- Integer.compare(int,0)
int가 양수면 1 음수면 -1 0이면 0 - getRow(), getColumn 메서드가 너무 많다.
target에 메시지를 보내면 되는 것을 게터로 얻어오는 건 아닌지 - board의 2차원 배열의 필요성
64개의 기물이 생성되어 있고, 계속 교체해 가며 나아갈 수 있다.
그렇지만 지금 방식으로서는 덮어씌우며 계속 empty 기물을 만드는 방식이다.
각 기물에 point가 존재하므로 board에는 pieces로 List만 존재해도 될 수도 있다. -
이중 포문의 제거
- Optional의 사용
.get()
은 null이 반환될 수 있어서 사용에 주의가 표시된다.
.orElse()
의 경우에는 원하는 값이 empty거나 없는 경우 무엇을 뱉겠니? 라는 것으로 Optional의 제네릭 타입으로 전해준 요소가 안에 있어야 한다.
.orElseThrow()
의 경우에는 없으면 에러
.orElseGet()
은 새로운 객체나 연산을 수행하는 경우에 사용
Optional.of()
의 경우에는 괄호 안에 원하는 값을 원하는 제네릭 타입으로 얻어내는 것 - instanceOf 줄이기
instanceOf는 객체지향에서 다형성으로 해결할 수 있다. 다형성과 ocp 공부하고 줄이기