어제 기술매니저님께서 책(혼자 공부하는 자바)에 나오는 연습문제 정도는 바로바로 풀 줄 알아야 한다고 하셔서 오늘은 복습에 초점을 맞출 예정입니다. 일단 챕터 5를 다 끝내고 챕터 1부터 연습문제 답지 안보고🤓 다 한번 풀어보겠습니다. 벌써 토요일이네요.
🎼오늘의 노래 그레이- 하기나 해
05-3 열거 타입
- 열거 타입(enumeration type):한정된 값만 갖는 타입
- 열거 상수(enumeration constant) 중에서 하나의 상수를 저장하는 타입
열거 타입 선언
- 1. 열거 타입의 이름을 정하고 해당 이름으로 소스 파일(.java)을 생성해야 함
- 이름은 관례적으로 첫 글자를 대문자로 하고 나머지는 소문자로 구성함
- 여러 단어로 구성된 이름이라면 각 단어의 첫 글자는 대문자로 하는 것이 관례임
- 2. 소스 파일 내용으로 열거 타입 선언 -> public enum : 열거 타입을 선언하기 위한 키워드 (반드시 소문자로 작성)
- 열거 타입 이름은 소스 파일 이름과 대소문자가 모두 일치해야함
- public enum 열거타입 이름 {...}
- 3. 열거 상수 선언
- 열거 탕비의 값으로 사용
- 모두 대문자로 작성함
- public enum Week { MOMDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
- 여러 단어로 구성될 경우 밑줄(_)로 연결
열거 타입 변수
- 열거 타입은 변수를 선언하고 사용 가능
- 열거타입 변수;
- 열거 상수를 저장
- 열거타입 변수 = 열거타입.열거상수;
- ex) Week today = Week.SUNDAY;
- ex) Week birthday = null;
- 열거 상수는 열거 객체로 생성
- Week 의 경우 총 7개의 Week 객체로 생성
- 메소드 영역에 생성된 열거 상수가 해당 Week 객체를 각각 참조
- 열거 타입은 참조 타입
- 열거 상수는 객체!
- Week today = Week.SUNDAY;
- 열거 타입 변수 today 스택 영역
- today에 저장되는 값은 Week.SUNDAY 열거 상수가 참조하는 개체의 번지
- 열거 상수 Week.SUNDAY와 변수는 서로 같은 Week 객체를 참조
- today == Week.SUNDAY; //true
- week1와 week2는 모두 Week.SATURDAY 상수라는 동일한 Week 객체를 참조
Week week1 = Week.SATURDAY;
Week week2 = Week.SATURDAY;
System.out.println( week1 == week2 ); //true
- 자바는 컴퓨터의 날짜 및 요일, 시간을 얻기 위해 Calendar 클래스를 제공함
- Calendar 변수를 선언 -> Calendar.getInstance()
- Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR); //연
int month = now.get(Calendar.MONTH) +1; //월(1~12)
int day = now.get(Calendar.DAY_OF_MONTH); //일
int week = now.get(Calendar.DAY_OF_WEEK); //요일(1~7)
int hour = now.get(Calendar.HOUR); //시간
int minute = now.get(Calendar.MINUTE); //분
int second = now.get(Calendar.SECOND); //초
열거 타입과 열거 상수
Week.java (열거 타입 선언)
public enum Week {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}
Main.java (열거 타입 사용하기)
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Week today = null;
Calendar cal = Calendar.getInstance();
int week = cal.get(Calendar.DAY_OF_WEEK);
switch (week) {
case 1:
today = Week.SUNDAY; break;
case 2:
today = Week.MONDAY; break;
case 3:
today = Week.TUESDAY; break;
case 4:
today = Week.WEDNESDAY; break;
case 5:
today = Week.THURSDAY; break;
case 6:
today = Week.FRIDAY; break;
case 7:
today = Week.SATURDAY; break;
}
System.out.println("오늘 요일: " + today);
if(today == Week.SUNDAY) {
System.out.println("일요일에는 축구를 합니다.");
} else {
System.out.println("열심히 자바 공부합니다.");
}
}
}
❗열거 타입을 사용하려면 public enum 열거 타입 선언한 먼저 해야함
확인문제 복습 손코딩으로 하기
손코딩으로 해야 는다는 글을 어디서 본 적이 있어서 복습은 노트에 손코딩하면서 하기로 결심했습니다. 확실히 답지도 안보고 문제만 보면서 펜으로 노트에 직접 쓰니까 더 머릿속에 잘 들어오는 듯 합니다. 그래도 한 번 푼 문제라고 풀리는 문제가 안풀리는 문제보다는 많습니다.
근데 생각보다 저는 더 악필이네요🤓
- while문에 break; 잊지 않기
- 타입 선언 잊지 않기
- 변수 선언한 {}를 벗어나놓고 왜 안되지 하지 않기
- 이유 알고 쓰기
- {} 빼먹지 않기; 실행 순서 알기
- 문제를 꼼꼼히 읽읍시다
- String 변수는 .equals() 메소드를 사용
Chapter 02-1
1. o,x 문제
- 변수는 하나의 값에만 저장할 수 있음
- 변수 선언 시에 사용한 타입의 값만 저장할 수 있음
- 변수는 초기 값이 저장되지 않은 상태에서 읽을 수 없음
2. 변수 이름으로 사용할 수 있는 것 o,x 문제
- $value는 사용할 수 있음
- 첫번째 글자는 문자이거나 '$', '_' 만 가능함
Chapter 02-2
2. o,x 문제
- char var = 'AB'; //char 타입이 아니라 String 타입임
- long var = 50000000000; //long은 int 타입의 범위를 벗어 날 시 숫자 뒤에 L 을 붙어야 함
- String var = "나의 직업은 "개발자" 입니다."; //"를 썼으면 안에는 '를 써야함
- float = 1e2f; // 변수 이름을 빼먹음😱😱
Chapter 02-3
10. 다음 코드 실행했을 때 출력 결과
String str1 = 2+3+""; //5
String str2 = 2+""+3; //23
String str3 = "+2+3; //23
+ 연산에서의 문자열 자동 타입 변환
숫자 + 숫자 -> 덧셈 연산 -> 숫자
"문자열" + 숫자 -> " 문자열"+"숫자" -> "문자열숫자"
숫자 + "문자열" -> "숫자" + "문자열" -> "숫자문자열"
'TIL' 카테고리의 다른 글
TIL 부트캠프 정식 시작 JWT 로그인 구현하기 221114 (0) | 2022.11.14 |
---|---|
TIL WIL 혼자 공부하는 자바 Java 복습 백준 221113 (0) | 2022.11.13 |
TIL 혼자 공부하는 자바 JAVA 참조타입 배열 array 221111 (0) | 2022.11.11 |
TIL 혼자 공부하는 자바 JAVA 핵심 쏙쏙 Git 3주차 푸시 토큰 오류 해결 221110 (0) | 2022.11.10 |
TIL 입학시험과 핵심 쏙쏙 Git 2주차 (0) | 2022.11.09 |