* 처음으로 클래스도 많고 규모가 나름 큰 실습을 해보았습니다. 오늘의 부제는 '코딩 - 절망편'이라고 해도 무방할 것 같아요. 일단 기초 개념들이 머릿속에서 마구 흔들렸고요, 실습 예제의 설명 없이는 손도 못대겠는... 그런 상황이었답니다.
그래서 오늘은 하루종일 헷갈리고, 혼돈의 카오스 속에서 흔들렸던 개념을 정리해보려고 합니다.
1. instanceof 연산자
- 캐스팅이 가능한지에 대한 여부를 boolean 타입으로 확인할 수 있게 하는 연산자
- 앞서 '다형성'에서 함께 학습하였다.
- 예시
(1) horn의 클래스는 Brass의 하위클래스이다.
(2) Brass는 Instrument를 상속받는다.
(3) horn의 클래스 Horn은 클래스 String과 상속 계층도, 상하위 관계도 아니다.
[결과]
System.out.println(horn instanceof Brass); //true
System.out.println(horn instanceof Instrument); //true
System.out.println(horn instanceof String); //false
- 결론 : 좌항의 인스턴스를 우항의 타입으로 캐스팅 할 수 있는지?
2. 리팩토링(Refactoring)
- 동일한 동작을 하는 코드를 개선하는 작업
3. 업캐스팅과 다운캐스팅
- 업캐스팅 : 하위 클래스 타입에서 상위 클래스 타입으로의 타입 변환 (괄호 생략 가능)
- 다운캐스팅 : 상위 클래스에서 하위 클래스 타입으로 변환
- 주의사항 : 다운캐스팅은 형 변환 연산자인 괄호를 반드시 명시해야함
- 다형성에서 학습했었음
4. 향상된 for문 (Enhanced for문)
- 배열 항목의 개수만큼 반복
String[] names = {"나비", "야옹이", "노랭이"};
for(String name : names)
~~~
라는 향상된 for문이 존재할 때
String name : 저장할 변수 선언
names : 사용할 배열
=> names 배열에서 첫 번째 값인 "나비"를 변수 name에 저장
=> 실행문 실행
=> 가져올 값이 존재하므로 "야옹이"와 "노랭이"도 차례로 실행
=> 가져올 값이 없으면 for문 종료
*매일 어렵다고만 쓰고 있는거 아닌지...? 근데 매일이 어렵다.
특히 이번 패스트푸드 키오스크 문제는 반토막(10번 중 5번)만 진행했는데도 하루가 지나갔다.
새벽에 6번까지 가까스로 마무리는 했지만 원래 목표는 두 번 해보는 거였는데 그건 어렵게 되었다.
언젠가 이 코드가 간단해보이는 날이 오겠지...?
그렇다고 해주세요...
'코딩하는 코커두드 > 자바, 스프링 백엔드 과정' 카테고리의 다른 글
Day 17 _ 자바 심화(Effective) (20230503) (0) | 2023.05.04 |
---|---|
Day 16 _ 처음으로 불참한 날 _ 위경련 조심 (20230502) (0) | 2023.05.03 |
Day 11 _ 객체지향 심화 (부제 : 장염 조심) (0) | 2023.04.26 |
Day 10 _ 본격 객체지향 학습 (기초편) (0) | 2023.04.24 |
Day 9 _ 객체지향 스타트 (0) | 2023.04.24 |