Tue, 26th Oct 2021
package sec06.exam02_array_bynew_YJ;
public class ArrayCreateByNewExample {
public static void main(String[] args) {
int[] arr1 = new int[3]; //길이가 3인 정수타입의 arr1 배열 생성
for(int i=0; i<arr1.length; i++) {
//배열의 인덱스는 0부터 시작하므로 배열의 마지막 인덱스는 배열 길이-1 이다.
System.out.println("int arr1[" + i + "]: " + arr1[i]);
//int arr1[0]: 0
//int arr1[1]: 0
//int arr1[2]: 0 -> int 타입 배열의 초기값은 0
}
System.out.println();
arr1[0] = 10;
arr1[1] = 20;
arr1[2] = 30;
for(int i=0; i<arr1.length; i++) {
System.out.println("int arr1[" + i + "]: " + arr1[i]);
//int arr1[0]: 10
//int arr1[1]: 20
//int arr1[2]: 30
}
System.out.println();
double[] arr2 = new double[3]; //길이가 3인 실수타입의 arr2 배열 생성
for(int i=0; i<arr2.length; i++) {
System.out.println("double arr2[" + i + "]: " + arr2[i]);
//double arr2[0]: 0.0
//double arr2[1]: 0.0
//double arr2[2]: 0.0 -> double 타입 배열의 초기값은 0.0
}
System.out.println();
arr2[0] = 0.1;
arr2[1] = 0.2;
arr2[2] = 0.3;
for(int i=0; i<arr2.length; i++) {
System.out.println("double arr2[" + i + "]: " + arr2[i]);
//double arr2[0]: 0.1
//double arr2[1]: 0.2
//double arr2[2]: 0.3
}
System.out.println();
String[] arr3 = new String[3];
for(int i=0; i<arr3.length; i++) {
System.out.println("String arr3[" + i + "]: " + arr3[i]);
//String arr3[0]: null
//String arr3[1]: null
//String arr3[2]: null -> String 타입 배열의 초기값은 null
}
System.out.println();
arr3[0] = "10월";
arr3[1] = "11월";
arr3[2] = "12월";
for(int i=0; i<arr3.length; i++) {
System.out.println("String arr3[" + i + "]: " + arr3[i]);
//String arr3[0]: 10월
//String arr3[1]: 11월
//String arr3[2]: 12월
}
}
}
package sec06.exam03_array_length_YJ;
public class ArrayLengthExample {
public static void main(String[] args) {
int[] scores = { 83, 90, 87 };
int sum = 0;
for(int i=0; i<scores.length; i++) {
sum += scores[i];
}
System.out.println("총합: " + sum); //총합: 260
double avg = (double) sum / scores.length;
System.out.println("평균: " + avg); //평균: 86.66666666666667
}
}
package sec06.exam04_main_argument_YJ;
public class MainStringArrayArgument {
public static void main(String[] args) {
//System.out.println("Argument Count: " + args.length); //Argument Count: 0
if(args.length != 2) { //배열 args의 길이가 2가 아닐경우
System.out.println("프로그래밍 사용법");
System.out.println("C:\\JavaProgramming\\source\\chap05\\bin");
System.out.println("java sec06.exam04_main_argument_YJ.MainStringArrayArgument num1 num2");
System.exit(0); //빠져나오는 method
}
String strNum1 = args[0]; //10
String strNum2 = args[1]; //20
int num1 = Integer.parseInt(strNum1); //★Integer.parseInt(x) -> String 타입의 x를 int 타입으로 변환시 사용★
int num2 = Integer.parseInt(strNum2);
int result = num1 + num2; //10+20=30
System.out.println(num1 + "+" + num2 + "=" + result);
}
}
프로그래밍 사용법
C:\JavaProgramming\source\chap05\bin
java sec06.exam04_main_argument_YJ.MainStringArrayArgument num1 num2
package sec06.exam04_main_argument_YJ;
public class MainStringArrayArgument {
public static void main(String[] args) {
//System.out.println("Argument Count: " + args.length); //Argument Count: 0
if(args.length != 2) { //배열 args의 길이가 2가 아닐경우
System.out.println("프로그래밍 사용법");
System.out.println("C:\\JavaProgramming\\source\\chap05\\bin");
System.out.println("java sec06.exam04_main_argument_YJ.MainStringArrayArgument num1 num2");
System.exit(0); //빠져나오는 method
}
String strNum1 = args[0]; //10
String strNum2 = args[1]; //20
int num1 = Integer.parseInt(strNum1); //★Integer.parseInt(x) -> String 타입의 x를 int 타입으로 변환시 사용★
int num2 = Integer.parseInt(strNum2);
int result = num1 + num2; //10+20=30
System.out.println(num1 + "+" + num2 + "=" + result);
}
}
10+20=30
package sec06.exam05_array_in_array_YJ;
public class ArrayInArrayExample {
public static void main(String[] args) {
int[][] mathScores = new int[2][3];
for(int i=0; i<mathScores.length; i++) { //mathScores.length = 2
for(int k=0; k<mathScores[i].length; k++) {
System.out.println("mathScores[" + i + "][" + k + "]= " + mathScores[i][k]);
}
}
System.out.println();
int[][] englishScores = new int[2][]; //배열의 길이 = 2
englishScores[0] = new int[2]; //0번 행에(index=0) new int[2](길이가 2인(i=0,1) 배열)대입
englishScores[1] = new int[3]; //1번 행에(index=1) new int[3](길이가 3인(i=0,1,2) 배열)대입
for(int i=0; i<englishScores.length; i++) { //englishScores.length = 2
for(int k=0; k<englishScores[i].length; k++) {
System.out.println("englishScores[" + i + "][" + k + "]= " + englishScores[i][k]);
}
}
System.out.println();
int[][] javaScores = { {95, 80}, {92, 96, 80} };
//0행 1행
for(int i=0; i<javaScores.length; i++) {
for(int k=0; k<javaScores[i].length; k++) {
System.out.println("javaScores[" + i + "][" + k + "]= " + javaScores[i][k]);
}
}
}
}
mathScores[0][0]= 0
mathScores[0][1]= 0
mathScores[0][2]= 0
mathScores[1][0]= 0
mathScores[1][1]= 0
mathScores[1][2]= 0
englishScores[0][0]= 0
englishScores[0][1]= 0
englishScores[1][0]= 0
englishScores[1][1]= 0
englishScores[1][2]= 0
javaScores[0][0]= 95
javaScores[0][1]= 80
javaScores[1][0]= 92
javaScores[1][1]= 96
javaScores[1][2]= 80
package sec06.exam06_array_reference_object_YJ;
public class ArrayReferenceObjectExample {
public static void main(String[] args) {
String[] strArray = new String[3];
strArray[0] = "java";
strArray[1] = "java";
strArray[2] = new String("java");
System.out.println(strArray[0] == strArray[1]); //true
System.out.println(strArray[0] == strArray[2]); //false
System.out.println(strArray[0].equals(strArray[1])); //true //x.equals(y) : x와 y의 문자열 비교
System.out.println(strArray[0].equals(strArray[2])); //true
}
}
package sec06.exam07_array_copy_YJ;
public class ArrayCopyByForExample {
public static void main(String[] args) {
int[] oldIntArray = { 1, 2, 3 };
int[] newIntArray = new int[5];
for(int i=0; i<oldIntArray.length; i++) { //oldIntArray.length = 3
newIntArray[i] = oldIntArray[i]; //newIntArray에 oldIntArray를 복사해넣기
}
for(int i=0; i<newIntArray.length; i++) { //newIntArray.length = 5
if(i == newIntArray.length - 1) { //newIntArray.length - 1 => 마지막 인덱스
System.out.print(newIntArray[i]); //마지막 인덱스엔 "," 붙이지 않는다
} else {
System.out.print(newIntArray[i] + ",");
}
//System.out.print(newIntArray[i] + ","); //1, 2, 3, 0, 0,
}
}
}
1,2,3,0,0
package sec06.exam07_array_copy_YJ;
public class ArrayCopyExample {
public static void main(String[] args) {
String[] oldStrArray = {"java", "array", "copy"}; //길이 3
String[] newStrArray = new String[5]; //길이 5
System.arraycopy(oldStrArray, 0, newStrArray, 0, oldStrArray.length);
//배열 복사 method
//System.arraycopy(원본 배열, 원본 배열에서 복사할 항목의 시작 인덱스, 새 배열, 새 배열에 붙여넣을 시작 인덱스, 복사할 개수)
for(int i=0; i<newStrArray.length; i++) {
System.out.print(newStrArray[i] + ", "); //java, array, copy, null, null,
}
}
}
package sec06.exam07_array_copy_YJ;
public class AdvancedForExample {
public static void main(String[] args) {
int[] scores = { 95, 71, 84, 93, 87 };
int sum = 0;
for(int score : scores) { //for(타입 변수 : 배열) {}
sum = sum + score;
}
System.out.println("점수 총합: " + sum); //점수 총합: 430
double avg = (double) sum / scores.length;
System.out.println("점수 평균: " + avg); //점수 평균: 86.0
}
}
package sec07.exam01_enum_YJ;
public enum Week {
MONDAY, //0
TUESDAY, //1
WEDNEDAY, //2
THURSDAY, //3
FRIDAY, //4
SATURDAY, //5
SUNDAY //6
}
package sec07.exam01_enum_YJ;
import java.util.Calendar;
public class EnumWeekExample {
public static void main(String[] args) {
Week today = null; //열거타입 변수 선언
Calendar cal = Calendar.getInstance(); //Calendar method
int week = cal.get(Calendar.DAY_OF_WEEK); //.get(Calendat.DAY_OF_WEEK) : 일(1)~토(7)까지의 숫자를 리턴
switch(week) {
case 1:
today = Week.SUNDAY; break; //열거 상수 대입
case 2:
today = Week.MONDAY; break;
case 3:
today = Week.TUESDAY; break;
case 4:
today = Week.WEDNEDAY; 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("열심히 자바 공부합니다.");
}
}
}
오늘 요일: TUESDAY
열심히 자바 공부합니다.
package sec07.exam01_enum_YJ;
public class EnumMethodExample {
public static void main(String[] args) {
//name() 메소드 : 열거 객체(열거 상수)의 문자열을 리턴
Week today = Week.SUNDAY; //today == Week.SUNDAY -> true
String name = today.name();
//System.out.println(today.name()); //SUNDAY
System.out.println(name);
System.out.println();
//ordinal() 메소드 : 열거 객체(열거 상수)의 순번을 리턴
int ordinal = today.ordinal(); //SUNDAY 순번 = 6
System.out.println(ordinal);
System.out.println();
//x.compareTo(y) 메소드 : x 순번 - y 순번
Week day1 = Week.MONDAY; //Week 내 MONDAY 순번 = 0
Week day2 = Week.WEDNEDAY; //Week 내 WEDNESDAY 순번 = 2
int result1 = day1.compareTo(day2);
int result2 = day2.compareTo(day1);
System.out.println(result1); //MON(0)-WED(2) = -2
System.out.println(result2); //WED(2)-MON(0) = 2
System.out.println();
//valueOf 메소드 : 매개값으로 주어지는 문자열과 동일한 문자열을 가지는 열거 객체를 리턴(문자열 -> 열거 객체로 변환)
Week weekDay = Week.valueOf("SUNDAY"); //SUNDAY를 리턴
if(weekDay == Week.SATURDAY || weekDay == Week.SUNDAY) {
System.out.println("주말이군요"); //주말이군요
} else {
System.out.println("평일이군요");
}
System.out.println();
//values() 메소드 : 모든 열거 객체들을 배열로 리턴
Week[] days = Week.values();
for(Week day : days) {
System.out.println(day);
}
}
}
SUNDAY
6
-2
2
주말이군요
MONDAY
TUESDAY
WEDNEDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
'Java > 5. 참조 타입 (Reference Type)' 카테고리의 다른 글
Day 6 : 가변 행렬 데이터의 합계, 평균 구하기 (for문, count 변수 사용) (0) | 2021.10.26 |
---|---|
Day 6 : 배열 내 데이터의 최대값 구하기 (for문 사용) (0) | 2021.10.26 |
Day 6 : Exercise - Reference Type (0) | 2021.10.26 |
Day 5 : Practice #1 (0) | 2021.10.25 |
Day 5 : 참조 타입 (Reference Type) (0) | 2021.10.25 |