1,2,3,4
MON, TUEN, WED,...
열거형 타입 변수이름;
데이터 표현 : 열거타입.상수
컴파일시 java.lang.Enum을 상속처리해서 컴파일이 이루어진다.
접근제한자 / 지정예약어 / enum / 열거형이름 (정적변수들)
public / / enum / Season (spring, summer, autumn, winter)
// class
public enum Season {
spring, summer, autumn, winter
//내가 원하는 값을 정해두고 싶을때
// spring, summer, autumn, winter 인 정적변수 자체가 값이 되는 것이다.
}
public class Enumtest {
public static void main(String[] args) {
Season lastSeason = Season.winter;
Season nowSeason = Season.summer;
Season nextSeason = Season.autumn;
System.out.println("last = " + lastSeason);
System.out.println("now = " + nowSeason);
System.out.println("next = " + nextSeason);
}
}
last = winter
now = summer
next = autumn
package enums;
public enum Week {
//열거상수
MON("월"),//0
TUE("화"),//1
WED("수"),//2
THU("목"),//3
FRI("금"),//4
SAT("토"),//5
SUN("일");//6
//관례적으로 열거형 상수의 표현은 대문자로 사용
public String dow;
Week(String dow){
this.dow=dow;
}
}
package enums;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
public class EnumTest01 {
public static void main(String[] args) {
//객체타입//객체 변수의 디폴트값--> null
//Week week=null;
Week week=Week.MON;//열거형 타입으로 변수선언
int no=1;
System.out.println(week);
//표현식을 기본적으로2가지표현이 가능
//문자표현식
System.out.println(week.name());
//숫자표현식 --> ordinal은 나열된순서에 맞는 데이터값을 표기해줌
System.out.println(week.ordinal());
for(Week w : Week.values()) {
System.out.println(w);
}
Date date=new Date();
System.out.println(date);
////1.8버전 Calender cal=new Calendar();
Calendar cal = Calendar.getInstance();
System.out.println(cal);
//GregorianCalendar gc=new Gregoriancalendar;
LocalDateTime dateTime;
//Enum.class
int wk=cal.get(Calendar.DAY_OF_WEEK);
System.out.println(wk);//일:1 월:2 화:3 ~~
switch(wk) {
case 1:week= Week.SUN; break;
case 2:week= Week.MON; break;
case 3:week= Week.TUE; break;
case 4:week= Week.WED; break;
case 5:week= Week.THU; break;
case 6:week= Week.FRI; break;
case 7:week= Week.SAT; break;
}
System.out.println("오늘의 요일은 "+ week.dow+"요일입니다람쥐");
}//main
}//class
MON
MON
0
MON
TUE
WED
THU
FRI
SAT
SUN
Mon Aug 29 15:34:20 KST 2022
java.util.GregorianCalendar[time=1661754860957,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=7,WEEK_OF_YEAR=36,WEEK_OF_MONTH=5,DAY_OF_MONTH=29,DAY_OF_YEAR=241,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=5,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=34,SECOND=20,MILLISECOND=957,ZONE_OFFSET=32400000,DST_OFFSET=0]
2
오늘의 요일은 월요일입니다람쥐
package classes;
public class Exam {
String name;
int kor;
int eng;
int mat;
int tot;
double avg;
void calcTotAndAvg() {
tot=kor+eng+mat;
avg=tot*3.0;
}
//출력메서드
void print() {
System.out.println("-- 회원정보 --");
System.out.println("이름 : "+name);
System.out.println("국어 : "+kor);
System.out.println("영어 : "+eng);
System.out.println("수학 : "+mat);
System.out.println("총점 : "+tot);
System.out.println("평균 : "+avg);
System.out.println("------------------");
}
}//class
package classes;
public class ArrayText01 {
public static void main(String[] args) {
String name;//이름 문자열
int[] exam =new int[3+1];//국.영.수 + 총점
double avg; //총점(실수)은 더블형
name="나그린";
exam[0]=100;
exam[1]=90;
exam[2]=80;
exam[3]=exam[0]+exam[1]+exam[2];
avg=exam[3]/3.0;
Exam ex =new Exam();
ex.name= "나그린";
ex.kor=100;
ex.eng=90;
ex.mat=80;
ex.tot = ex.kor + ex.eng + ex.mat;
ex.avg = ex.tot / 3.0;
System.out.println("이름 : "+ex.name);
System.out.println("국어 : "+ex.kor);
System.out.println("영어 : "+ex.eng);
System.out.println("수학 : "+ex.mat);
System.out.println("총점 : "+ex.tot);
System.out.println("평균 : "+ex.avg);
System.out.println();
ex.print();
ex.eng=100;
ex.calcTotAndAvg();
ex.print();
}//main
}//class
기대값
이름 : 나그린
국어 : 100
영어 : 90
수학 : 80
총점 : 270
평균 : 90.0
-- 회원정보 --
이름 : 나그린
국어 : 100
영어 : 90
수학 : 80
총점 : 270
평균 : 90.0
------------------
-- 회원정보 --
이름 : 나그린
국어 : 100
영어 : 100
수학 : 80
총점 : 280
평균 : 840.0
------------------