From 33b3540acc7380921a3854926e8ac7c1e8b80cef Mon Sep 17 00:00:00 2001 From: choincnp Date: Wed, 18 Jan 2023 14:07:21 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20report1,report2=20=EC=9E=AC?= =?UTF-8?q?=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report1/Report1_1 | 4 ++++ src/choyoungjun/report1/Report1_2 | 17 +++++++++++++++ src/choyoungjun/report1/Report1_3.java | 18 ++++++++++++++++ src/choyoungjun/report2/Report2_1 | 17 +++++++++++++++ src/choyoungjun/report2/Report2_2.java | 30 ++++++++++++++++++++++++++ src/choyoungjun/report2/Report2_3.java | 14 ++++++++++++ src/choyoungjun/report2/Report2_4.java | 14 ++++++++++++ src/choyoungjun/report2/Report2_5.java | 14 ++++++++++++ src/choyoungjun/report2/Report2_6.java | 17 +++++++++++++++ 9 files changed, 145 insertions(+) create mode 100644 src/choyoungjun/report1/Report1_1 create mode 100644 src/choyoungjun/report1/Report1_2 create mode 100644 src/choyoungjun/report1/Report1_3.java create mode 100644 src/choyoungjun/report2/Report2_1 create mode 100644 src/choyoungjun/report2/Report2_2.java create mode 100644 src/choyoungjun/report2/Report2_3.java create mode 100644 src/choyoungjun/report2/Report2_4.java create mode 100644 src/choyoungjun/report2/Report2_5.java create mode 100644 src/choyoungjun/report2/Report2_6.java diff --git a/src/choyoungjun/report1/Report1_1 b/src/choyoungjun/report1/Report1_1 new file mode 100644 index 0000000..9736b82 --- /dev/null +++ b/src/choyoungjun/report1/Report1_1 @@ -0,0 +1,4 @@ +2-4번 문제 + +정답 : +4. float f = 3.14f로 초기화 diff --git a/src/choyoungjun/report1/Report1_2 b/src/choyoungjun/report1/Report1_2 new file mode 100644 index 0000000..42e8ee3 --- /dev/null +++ b/src/choyoungjun/report1/Report1_2 @@ -0,0 +1,17 @@ +2-7번 문제 + +정답 : +System.out.println("1" + "2"); + => 12 +System.out.println(true+""); + => true +System.out.println('A' + 'B'); + => 131 (ASKII코드 참조) +System.out.println('1' + 2); + => 51 +System.out.println('1' + '2'); + => 99 +System.out.println('J' +"ava"); + => Java +System.out.println(true + null); + => Error \ No newline at end of file diff --git a/src/choyoungjun/report1/Report1_3.java b/src/choyoungjun/report1/Report1_3.java new file mode 100644 index 0000000..d3d256a --- /dev/null +++ b/src/choyoungjun/report1/Report1_3.java @@ -0,0 +1,18 @@ +package choyoungjun.report1; + +// 2-8번 문제 +public class Report1_3 { + public static void main(String[] args) { + int x = 1; + int y = 2; + int z = 3; + x = 2; + y = 3; + z = 1; + + System.out.println("x="+x); + System.out.println("y="+y); + System.out.println("z="+z); + } +} +//예상 결과 : x=2, y=3, z=1 \ No newline at end of file diff --git a/src/choyoungjun/report2/Report2_1 b/src/choyoungjun/report2/Report2_1 new file mode 100644 index 0000000..98e4830 --- /dev/null +++ b/src/choyoungjun/report2/Report2_1 @@ -0,0 +1,17 @@ +byte b = 10; +char ch = 'A'; +int i = 100; +long l = 1000L; + +//3-1. 다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오) +b = (byte)i; +ch = (char)b; +short s = (short)ch; +float f = (float)l; +i = (int)ch; + + +해설 : 형변환 연산자는 타입간 형변환이나 큰 타입으로의 변환시 사용한다.(값 손실 방지를 위해) +4번과 5번은 생략할수 있다. +4번 : 값 손실없다. +5번 : 값 손실없다. \ No newline at end of file diff --git a/src/choyoungjun/report2/Report2_2.java b/src/choyoungjun/report2/Report2_2.java new file mode 100644 index 0000000..21f7e8a --- /dev/null +++ b/src/choyoungjun/report2/Report2_2.java @@ -0,0 +1,30 @@ +package choyoungjun.report2; +// 3-2번 문제 +public class Report2_2 { + public static void main(String[] args) { + int x = 2; + int y = 5; + char c = 'A'; // 'A'의 문자코드는 65 + + System.out.println(y >= 5 || x < 0 && x > 2); + // true or (false and false) = true or false = true + System.out.println(y += 10 - x++); + // y += 10 => 15, y-x = 13 , x++ => x의 값을 3으로 변화시킨다.(print에 반영안됨) + System.out.println(x += 2); + // x += 2 => x에다가 2를 더해준다 => 3+2 = 5 + System.out.println(!('A' <= c && c <= 'Z')); + // !(true and true) = false + System.out.println('C' - c); + // C의 아스키코드는 67, 67-65 = 2 + System.out.println('5' - '0'); + // 5 + System.out.println(c + 1); + // char + int = int => 66 + System.out.println(++c); + // c의 ASKII코드를 66으로 변화시킨다. 따라서 B됨 + System.out.println(c++); + // print해서 B를 찍고 char c = 'C'형태로 변화시킨다. + System.out.println(c); + // char c = 'C' 출력된다. + } +} diff --git a/src/choyoungjun/report2/Report2_3.java b/src/choyoungjun/report2/Report2_3.java new file mode 100644 index 0000000..2dfcb0a --- /dev/null +++ b/src/choyoungjun/report2/Report2_3.java @@ -0,0 +1,14 @@ +package choyoungjun.report2; +//3-3. 아래는 변수의 num 값 중에서 백의 자리 이하를 버리는 코드이다. +//만일 변수 num의 값이 '456'이라면 '400'이 되고, '111'이라면 '100'이 된다. +//알맞은 코드를 넣으시오. +import java.util.Scanner; + +public class Report2_3 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int num = sc.nextInt(); + num = num/100*100; + System.out.println(num); + } +} diff --git a/src/choyoungjun/report2/Report2_4.java b/src/choyoungjun/report2/Report2_4.java new file mode 100644 index 0000000..d076f74 --- /dev/null +++ b/src/choyoungjun/report2/Report2_4.java @@ -0,0 +1,14 @@ +package choyoungjun.report2; +//3-4. 아래의 코드는 사과를 담는데 필요한 바구니(버켓)의 수를 구하는 코드이다. +//만일 사과의 수가 123개이고 하나의 바구니에는 10개의 사과를 담을 수 있다면, 13개의 바구니가 필요할 것이다. +//알맞은 코드를 넣으시오. + +public class Report2_4 { + public static void main(String[] args) { + int numOfApples = 131; // 사과의 개수 + int sizeOfBucket = 10; // 바구니의 크기(바구니에 담을 수 있는 사과의 개수) + int numOfBucket = (int)(Math.ceil((double) numOfApples/sizeOfBucket)); // 모든 사과를 담는데 필요한 바구니의 수 + + System.out.println("필요한 바구니의 수 :"+numOfBucket); + } +} diff --git a/src/choyoungjun/report2/Report2_5.java b/src/choyoungjun/report2/Report2_5.java new file mode 100644 index 0000000..0fa0908 --- /dev/null +++ b/src/choyoungjun/report2/Report2_5.java @@ -0,0 +1,14 @@ +package choyoungjun.report2; +//3-5. 아래는 변수 num의 값에 따라 '양수', '음수', '0'을 출력하는 코드이다. +//삼항연산자를 이용해서 빈칸에 알맞은 코드를 넣으시오. +//Hint : 삼항 연산자를 두 번 사용할 것! + +import java.util.Scanner; + +public class Report2_5 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int num = sc.nextInt(); + System.out.println(num>0? "양수" : (num==0? "0" : "음수")); + } +} diff --git a/src/choyoungjun/report2/Report2_6.java b/src/choyoungjun/report2/Report2_6.java new file mode 100644 index 0000000..692d90a --- /dev/null +++ b/src/choyoungjun/report2/Report2_6.java @@ -0,0 +1,17 @@ +package choyoungjun.report2; + +import java.util.Scanner; + +//3-6. 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다. +//변환 공식이 'C = 5/9*(F-32)'라고 할 때, 빈 칸에 알맞은 코드를 넣으시오. +// 단, 변환값은 소수점 셋째자리에서 반올림하며, Math.round() 함수를 사용하지 않고 처리할 것! +public class Report2_6 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int fahrenheit = sc.nextInt(); + float celcius = ((int)((5f/9*(fahrenheit-32)*100)+0.5f))/100f; + + System.out.println("Fahrenheit:"+fahrenheit); + System.out.println("Celcius:"+celcius); + } +} From 7a1c2abd3c3143976b3ae0fb7d65edebf03fdace Mon Sep 17 00:00:00 2001 From: choincnp Date: Fri, 20 Jan 2023 17:31:41 +0900 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20report3=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report3/Report3_1 | 24 +++++++++++++++++++++ src/choyoungjun/report3/Report3_10.java | 26 +++++++++++++++++++++++ src/choyoungjun/report3/Report3_2.java | 12 +++++++++++ src/choyoungjun/report3/Report3_3.java | 13 ++++++++++++ src/choyoungjun/report3/Report3_4.java | 16 ++++++++++++++ src/choyoungjun/report3/Report3_5.java | 16 ++++++++++++++ src/choyoungjun/report3/Report3_6.java | 9 ++++++++ src/choyoungjun/report3/Report3_7.java | 15 +++++++++++++ src/choyoungjun/report3/Report3_8.java | 8 +++++++ src/choyoungjun/report3/Report3_9.java | 13 ++++++++++++ src/choyoungjun/report4/Report4_1 | 8 +++++++ src/choyoungjun/report4/Report4_2 | 10 +++++++++ src/choyoungjun/report4/Report4_3.java | 10 +++++++++ src/choyoungjun/report4/Report4_4.java | 26 +++++++++++++++++++++++ src/choyoungjun/report4/Report4_5.java | 26 +++++++++++++++++++++++ src/choyoungjun/report4/Report4_6.java | 27 ++++++++++++++++++++++++ src/choyoungjun/report4/Report4_7.png | Bin 0 -> 22010 bytes 17 files changed, 259 insertions(+) create mode 100644 src/choyoungjun/report3/Report3_1 create mode 100644 src/choyoungjun/report3/Report3_10.java create mode 100644 src/choyoungjun/report3/Report3_2.java create mode 100644 src/choyoungjun/report3/Report3_3.java create mode 100644 src/choyoungjun/report3/Report3_4.java create mode 100644 src/choyoungjun/report3/Report3_5.java create mode 100644 src/choyoungjun/report3/Report3_6.java create mode 100644 src/choyoungjun/report3/Report3_7.java create mode 100644 src/choyoungjun/report3/Report3_8.java create mode 100644 src/choyoungjun/report3/Report3_9.java create mode 100644 src/choyoungjun/report4/Report4_1 create mode 100644 src/choyoungjun/report4/Report4_2 create mode 100644 src/choyoungjun/report4/Report4_3.java create mode 100644 src/choyoungjun/report4/Report4_4.java create mode 100644 src/choyoungjun/report4/Report4_5.java create mode 100644 src/choyoungjun/report4/Report4_6.java create mode 100644 src/choyoungjun/report4/Report4_7.png diff --git a/src/choyoungjun/report3/Report3_1 b/src/choyoungjun/report3/Report3_1 new file mode 100644 index 0000000..2cedb4a --- /dev/null +++ b/src/choyoungjun/report3/Report3_1 @@ -0,0 +1,24 @@ +//int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식 + int x; + (10<=x && x<20) +//char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식 + char ch; + (ch!=' ' || char!= '\t') +//char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식 + char ch; + (ch=='x' || ch=='X') +//char형 변수 ch가 숫자('0'~'9')일 때 true인 조건식 + char ch; + ('0'<=ch && ch<='9') +//char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식 + char ch; + (('A'<=ch && ch<='Z') || ('a'<=ch && ch<='z')) +//int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을때 true인 조건식 + int year + (year%400 == 0 || (year%4==0 && year%100 != 0)) +//boolean형 변수 powerOn이 false일 때 true인 조건식 + boolean powerOn; + (!powerOn) +//문자열 참조변수 str이 "yes"일 때 true인 조건식 + String str; + str.equals("yes") \ No newline at end of file diff --git a/src/choyoungjun/report3/Report3_10.java b/src/choyoungjun/report3/Report3_10.java new file mode 100644 index 0000000..1bdc974 --- /dev/null +++ b/src/choyoungjun/report3/Report3_10.java @@ -0,0 +1,26 @@ +package choyoungjun.report3; + +public class Report3_10 { + public static void main(String[] args) { + // 1~100사이의 임의의 값을 얻어서 answer에 저장한다. + int answer = (int)(Math.random()*100+1); + int input = 0; //사용자입력을 저장할 공간 + int count = 0; //시도횟수를 세기위한 변수 + + // 화면으로 부터 사용자입력을 받기 위해서 Scanner클래스 사용 + java.util.Scanner s = new java.util.Scanner(System.in); + do { + count++; + System.out.print("1과 100사이의 값을 입력하세요 : "); + input = s.nextInt(); //입력받은 값을 변수 input에 저장한다. + if (input < answer) + System.out.println("더 큰 수를 입력하세요"); + else if (input > answer) + System.out.println("더 작은 수를 입력하세요"); + else{ + System.out.println("맞혔습니다."); + System.out.println("시도횟수는 "+count+"번입니다."); + } + } while(true); //무한반복문 + } +} diff --git a/src/choyoungjun/report3/Report3_2.java b/src/choyoungjun/report3/Report3_2.java new file mode 100644 index 0000000..1d1e80a --- /dev/null +++ b/src/choyoungjun/report3/Report3_2.java @@ -0,0 +1,12 @@ +package choyoungjun.report3; + +public class Report3_2 { + //4-2. 1부터 20까지의 정수중에서 2 또는 3의 배수가 아닌 수의 총합을 구하세요. + public static void main(String[] args) { + int sum = 0; + for (int i=1; i<21; i++){ + if (i%2!=0 && i%3!=0) sum += i; + } + System.out.println(sum); + } +} diff --git a/src/choyoungjun/report3/Report3_3.java b/src/choyoungjun/report3/Report3_3.java new file mode 100644 index 0000000..07efab7 --- /dev/null +++ b/src/choyoungjun/report3/Report3_3.java @@ -0,0 +1,13 @@ +package choyoungjun.report3; + +public class Report3_3 { + public static void main(String[] args) { + int sum = 0; + int totalSum = 0; + for (int i=1; i<11; i++){ + sum += i; + totalSum += sum; + } + System.out.println("totalSum="+totalSum); + } +} diff --git a/src/choyoungjun/report3/Report3_4.java b/src/choyoungjun/report3/Report3_4.java new file mode 100644 index 0000000..692ddae --- /dev/null +++ b/src/choyoungjun/report3/Report3_4.java @@ -0,0 +1,16 @@ +package choyoungjun.report3; + +public class Report3_4 { + public static void main(String[] args) { + int sum = 0; // 총합을 저장할 변수 + int num = 1; + while (true){ + if (num%2==0) sum -= num; + else sum += num; + if (sum>=100) break; + num++; + } + System.out.println("num="+num); + System.out.println("sum="+sum); + } +} diff --git a/src/choyoungjun/report3/Report3_5.java b/src/choyoungjun/report3/Report3_5.java new file mode 100644 index 0000000..270e74f --- /dev/null +++ b/src/choyoungjun/report3/Report3_5.java @@ -0,0 +1,16 @@ +package choyoungjun.report3; + +public class Report3_5 { + public static void main(String[] args) { + int i=0; + while (i<10){ + int j=0; + while (j<=i){ + System.out.print("*"); + j++; + } + System.out.println(); + i++; + } + } +} diff --git a/src/choyoungjun/report3/Report3_6.java b/src/choyoungjun/report3/Report3_6.java new file mode 100644 index 0000000..83b262f --- /dev/null +++ b/src/choyoungjun/report3/Report3_6.java @@ -0,0 +1,9 @@ +package choyoungjun.report3; + +public class Report3_6 { + public static void main(String[] args) { + for (int i=1; i<6; i++){ + System.out.println(i+" "+(6-i)); + } + } +} diff --git a/src/choyoungjun/report3/Report3_7.java b/src/choyoungjun/report3/Report3_7.java new file mode 100644 index 0000000..b6f4449 --- /dev/null +++ b/src/choyoungjun/report3/Report3_7.java @@ -0,0 +1,15 @@ +package choyoungjun.report3; + +public class Report3_7 { + public static void main(String[] args) { + String str = "12345"; + int sum = 0; + + for (int i = 0; i < str.length(); i++) { + sum += str.charAt(i)-'0'; + } + + System.out.println("sum=" + sum); + + } +} diff --git a/src/choyoungjun/report3/Report3_8.java b/src/choyoungjun/report3/Report3_8.java new file mode 100644 index 0000000..6f9bb75 --- /dev/null +++ b/src/choyoungjun/report3/Report3_8.java @@ -0,0 +1,8 @@ +package choyoungjun.report3; + +public class Report3_8 { + public static void main(String[] args) { + int value = (int)(Math.random()*6+1); + System.out.println("value:"+value); + } +} diff --git a/src/choyoungjun/report3/Report3_9.java b/src/choyoungjun/report3/Report3_9.java new file mode 100644 index 0000000..a19418e --- /dev/null +++ b/src/choyoungjun/report3/Report3_9.java @@ -0,0 +1,13 @@ +package choyoungjun.report3; + +public class Report3_9 { + public static void main(String[] args) { + int num = 12345; + int sum = 0; + while (num > 0){ + sum += num%10; + num /= 10; + } + System.out.println("sum="+sum); + } +} diff --git a/src/choyoungjun/report4/Report4_1 b/src/choyoungjun/report4/Report4_1 new file mode 100644 index 0000000..faab506 --- /dev/null +++ b/src/choyoungjun/report4/Report4_1 @@ -0,0 +1,8 @@ +//5-1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요. +int[] arr[]; +int[] arr = {1,2,3,}; +int[] arr = new int[5]; +int[] arr = new int[5]{1,2,3,4,5}; +int arr[5]; +int[] arr[] = new int[3][]; + diff --git a/src/choyoungjun/report4/Report4_2 b/src/choyoungjun/report4/Report4_2 new file mode 100644 index 0000000..59311c3 --- /dev/null +++ b/src/choyoungjun/report4/Report4_2 @@ -0,0 +1,10 @@ +//5-2. 다음과 같은 배열이 있을 때, arr[3].length의 값은? +int[][]arr ={ + {5,5,5,5,5}, + {10,10,10}, + {20,20,20,20}, + {30,30} +}; + +arr[3] = {30,30} +length = 2 \ No newline at end of file diff --git a/src/choyoungjun/report4/Report4_3.java b/src/choyoungjun/report4/Report4_3.java new file mode 100644 index 0000000..fe7e937 --- /dev/null +++ b/src/choyoungjun/report4/Report4_3.java @@ -0,0 +1,10 @@ +package choyoungjun.report4; + +public class Report4_3 { + public static void main(String[] args) { + int[] arr = {10, 20, 30, 40, 50}; + int sum = 0; + for (int i : arr) sum += i; + System.out.println("sum="+sum); + } +} diff --git a/src/choyoungjun/report4/Report4_4.java b/src/choyoungjun/report4/Report4_4.java new file mode 100644 index 0000000..e334d39 --- /dev/null +++ b/src/choyoungjun/report4/Report4_4.java @@ -0,0 +1,26 @@ +package choyoungjun.report4; + +public class Report4_4 { + public static void main(String[] args) { + int[][] arr = { + { 5, 5, 5, 5, 5 }, + { 10, 10, 10, 10, 10 }, + { 20, 20, 20, 20, 20 }, + { 30, 30, 30, 30, 30 } + }; + + int total = 0; + float average = 0; + float length = 0; + for (int[] intArr : arr){ + length += intArr.length; + for (int i=0; i", i + 1, new String(question)); + String answer = scanner.nextLine(); + + if (words[i].equals(answer.trim())) + System.out.printf("맞았습니다.%n%n"); + else + System.out.printf("틀렸습니다.%n%n"); + } + } +} diff --git a/src/choyoungjun/report4/Report4_7.png b/src/choyoungjun/report4/Report4_7.png new file mode 100644 index 0000000000000000000000000000000000000000..346243ab24be5078ac524f26b8b3f4ee92630dbe GIT binary patch literal 22010 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 Date: Fri, 20 Jan 2023 18:13:31 +0900 Subject: [PATCH 3/9] =?UTF-8?q?Revert=20"feat:=20report3=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 7a1c2abd3c3143976b3ae0fb7d65edebf03fdace. --- src/choyoungjun/report3/Report3_1 | 24 --------------------- src/choyoungjun/report3/Report3_10.java | 26 ----------------------- src/choyoungjun/report3/Report3_2.java | 12 ----------- src/choyoungjun/report3/Report3_3.java | 13 ------------ src/choyoungjun/report3/Report3_4.java | 16 -------------- src/choyoungjun/report3/Report3_5.java | 16 -------------- src/choyoungjun/report3/Report3_6.java | 9 -------- src/choyoungjun/report3/Report3_7.java | 15 ------------- src/choyoungjun/report3/Report3_8.java | 8 ------- src/choyoungjun/report3/Report3_9.java | 13 ------------ src/choyoungjun/report4/Report4_1 | 8 ------- src/choyoungjun/report4/Report4_2 | 10 --------- src/choyoungjun/report4/Report4_3.java | 10 --------- src/choyoungjun/report4/Report4_4.java | 26 ----------------------- src/choyoungjun/report4/Report4_5.java | 26 ----------------------- src/choyoungjun/report4/Report4_6.java | 27 ------------------------ src/choyoungjun/report4/Report4_7.png | Bin 22010 -> 0 bytes 17 files changed, 259 deletions(-) delete mode 100644 src/choyoungjun/report3/Report3_1 delete mode 100644 src/choyoungjun/report3/Report3_10.java delete mode 100644 src/choyoungjun/report3/Report3_2.java delete mode 100644 src/choyoungjun/report3/Report3_3.java delete mode 100644 src/choyoungjun/report3/Report3_4.java delete mode 100644 src/choyoungjun/report3/Report3_5.java delete mode 100644 src/choyoungjun/report3/Report3_6.java delete mode 100644 src/choyoungjun/report3/Report3_7.java delete mode 100644 src/choyoungjun/report3/Report3_8.java delete mode 100644 src/choyoungjun/report3/Report3_9.java delete mode 100644 src/choyoungjun/report4/Report4_1 delete mode 100644 src/choyoungjun/report4/Report4_2 delete mode 100644 src/choyoungjun/report4/Report4_3.java delete mode 100644 src/choyoungjun/report4/Report4_4.java delete mode 100644 src/choyoungjun/report4/Report4_5.java delete mode 100644 src/choyoungjun/report4/Report4_6.java delete mode 100644 src/choyoungjun/report4/Report4_7.png diff --git a/src/choyoungjun/report3/Report3_1 b/src/choyoungjun/report3/Report3_1 deleted file mode 100644 index 2cedb4a..0000000 --- a/src/choyoungjun/report3/Report3_1 +++ /dev/null @@ -1,24 +0,0 @@ -//int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식 - int x; - (10<=x && x<20) -//char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식 - char ch; - (ch!=' ' || char!= '\t') -//char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식 - char ch; - (ch=='x' || ch=='X') -//char형 변수 ch가 숫자('0'~'9')일 때 true인 조건식 - char ch; - ('0'<=ch && ch<='9') -//char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식 - char ch; - (('A'<=ch && ch<='Z') || ('a'<=ch && ch<='z')) -//int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을때 true인 조건식 - int year - (year%400 == 0 || (year%4==0 && year%100 != 0)) -//boolean형 변수 powerOn이 false일 때 true인 조건식 - boolean powerOn; - (!powerOn) -//문자열 참조변수 str이 "yes"일 때 true인 조건식 - String str; - str.equals("yes") \ No newline at end of file diff --git a/src/choyoungjun/report3/Report3_10.java b/src/choyoungjun/report3/Report3_10.java deleted file mode 100644 index 1bdc974..0000000 --- a/src/choyoungjun/report3/Report3_10.java +++ /dev/null @@ -1,26 +0,0 @@ -package choyoungjun.report3; - -public class Report3_10 { - public static void main(String[] args) { - // 1~100사이의 임의의 값을 얻어서 answer에 저장한다. - int answer = (int)(Math.random()*100+1); - int input = 0; //사용자입력을 저장할 공간 - int count = 0; //시도횟수를 세기위한 변수 - - // 화면으로 부터 사용자입력을 받기 위해서 Scanner클래스 사용 - java.util.Scanner s = new java.util.Scanner(System.in); - do { - count++; - System.out.print("1과 100사이의 값을 입력하세요 : "); - input = s.nextInt(); //입력받은 값을 변수 input에 저장한다. - if (input < answer) - System.out.println("더 큰 수를 입력하세요"); - else if (input > answer) - System.out.println("더 작은 수를 입력하세요"); - else{ - System.out.println("맞혔습니다."); - System.out.println("시도횟수는 "+count+"번입니다."); - } - } while(true); //무한반복문 - } -} diff --git a/src/choyoungjun/report3/Report3_2.java b/src/choyoungjun/report3/Report3_2.java deleted file mode 100644 index 1d1e80a..0000000 --- a/src/choyoungjun/report3/Report3_2.java +++ /dev/null @@ -1,12 +0,0 @@ -package choyoungjun.report3; - -public class Report3_2 { - //4-2. 1부터 20까지의 정수중에서 2 또는 3의 배수가 아닌 수의 총합을 구하세요. - public static void main(String[] args) { - int sum = 0; - for (int i=1; i<21; i++){ - if (i%2!=0 && i%3!=0) sum += i; - } - System.out.println(sum); - } -} diff --git a/src/choyoungjun/report3/Report3_3.java b/src/choyoungjun/report3/Report3_3.java deleted file mode 100644 index 07efab7..0000000 --- a/src/choyoungjun/report3/Report3_3.java +++ /dev/null @@ -1,13 +0,0 @@ -package choyoungjun.report3; - -public class Report3_3 { - public static void main(String[] args) { - int sum = 0; - int totalSum = 0; - for (int i=1; i<11; i++){ - sum += i; - totalSum += sum; - } - System.out.println("totalSum="+totalSum); - } -} diff --git a/src/choyoungjun/report3/Report3_4.java b/src/choyoungjun/report3/Report3_4.java deleted file mode 100644 index 692ddae..0000000 --- a/src/choyoungjun/report3/Report3_4.java +++ /dev/null @@ -1,16 +0,0 @@ -package choyoungjun.report3; - -public class Report3_4 { - public static void main(String[] args) { - int sum = 0; // 총합을 저장할 변수 - int num = 1; - while (true){ - if (num%2==0) sum -= num; - else sum += num; - if (sum>=100) break; - num++; - } - System.out.println("num="+num); - System.out.println("sum="+sum); - } -} diff --git a/src/choyoungjun/report3/Report3_5.java b/src/choyoungjun/report3/Report3_5.java deleted file mode 100644 index 270e74f..0000000 --- a/src/choyoungjun/report3/Report3_5.java +++ /dev/null @@ -1,16 +0,0 @@ -package choyoungjun.report3; - -public class Report3_5 { - public static void main(String[] args) { - int i=0; - while (i<10){ - int j=0; - while (j<=i){ - System.out.print("*"); - j++; - } - System.out.println(); - i++; - } - } -} diff --git a/src/choyoungjun/report3/Report3_6.java b/src/choyoungjun/report3/Report3_6.java deleted file mode 100644 index 83b262f..0000000 --- a/src/choyoungjun/report3/Report3_6.java +++ /dev/null @@ -1,9 +0,0 @@ -package choyoungjun.report3; - -public class Report3_6 { - public static void main(String[] args) { - for (int i=1; i<6; i++){ - System.out.println(i+" "+(6-i)); - } - } -} diff --git a/src/choyoungjun/report3/Report3_7.java b/src/choyoungjun/report3/Report3_7.java deleted file mode 100644 index b6f4449..0000000 --- a/src/choyoungjun/report3/Report3_7.java +++ /dev/null @@ -1,15 +0,0 @@ -package choyoungjun.report3; - -public class Report3_7 { - public static void main(String[] args) { - String str = "12345"; - int sum = 0; - - for (int i = 0; i < str.length(); i++) { - sum += str.charAt(i)-'0'; - } - - System.out.println("sum=" + sum); - - } -} diff --git a/src/choyoungjun/report3/Report3_8.java b/src/choyoungjun/report3/Report3_8.java deleted file mode 100644 index 6f9bb75..0000000 --- a/src/choyoungjun/report3/Report3_8.java +++ /dev/null @@ -1,8 +0,0 @@ -package choyoungjun.report3; - -public class Report3_8 { - public static void main(String[] args) { - int value = (int)(Math.random()*6+1); - System.out.println("value:"+value); - } -} diff --git a/src/choyoungjun/report3/Report3_9.java b/src/choyoungjun/report3/Report3_9.java deleted file mode 100644 index a19418e..0000000 --- a/src/choyoungjun/report3/Report3_9.java +++ /dev/null @@ -1,13 +0,0 @@ -package choyoungjun.report3; - -public class Report3_9 { - public static void main(String[] args) { - int num = 12345; - int sum = 0; - while (num > 0){ - sum += num%10; - num /= 10; - } - System.out.println("sum="+sum); - } -} diff --git a/src/choyoungjun/report4/Report4_1 b/src/choyoungjun/report4/Report4_1 deleted file mode 100644 index faab506..0000000 --- a/src/choyoungjun/report4/Report4_1 +++ /dev/null @@ -1,8 +0,0 @@ -//5-1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요. -int[] arr[]; -int[] arr = {1,2,3,}; -int[] arr = new int[5]; -int[] arr = new int[5]{1,2,3,4,5}; -int arr[5]; -int[] arr[] = new int[3][]; - diff --git a/src/choyoungjun/report4/Report4_2 b/src/choyoungjun/report4/Report4_2 deleted file mode 100644 index 59311c3..0000000 --- a/src/choyoungjun/report4/Report4_2 +++ /dev/null @@ -1,10 +0,0 @@ -//5-2. 다음과 같은 배열이 있을 때, arr[3].length의 값은? -int[][]arr ={ - {5,5,5,5,5}, - {10,10,10}, - {20,20,20,20}, - {30,30} -}; - -arr[3] = {30,30} -length = 2 \ No newline at end of file diff --git a/src/choyoungjun/report4/Report4_3.java b/src/choyoungjun/report4/Report4_3.java deleted file mode 100644 index fe7e937..0000000 --- a/src/choyoungjun/report4/Report4_3.java +++ /dev/null @@ -1,10 +0,0 @@ -package choyoungjun.report4; - -public class Report4_3 { - public static void main(String[] args) { - int[] arr = {10, 20, 30, 40, 50}; - int sum = 0; - for (int i : arr) sum += i; - System.out.println("sum="+sum); - } -} diff --git a/src/choyoungjun/report4/Report4_4.java b/src/choyoungjun/report4/Report4_4.java deleted file mode 100644 index e334d39..0000000 --- a/src/choyoungjun/report4/Report4_4.java +++ /dev/null @@ -1,26 +0,0 @@ -package choyoungjun.report4; - -public class Report4_4 { - public static void main(String[] args) { - int[][] arr = { - { 5, 5, 5, 5, 5 }, - { 10, 10, 10, 10, 10 }, - { 20, 20, 20, 20, 20 }, - { 30, 30, 30, 30, 30 } - }; - - int total = 0; - float average = 0; - float length = 0; - for (int[] intArr : arr){ - length += intArr.length; - for (int i=0; i", i + 1, new String(question)); - String answer = scanner.nextLine(); - - if (words[i].equals(answer.trim())) - System.out.printf("맞았습니다.%n%n"); - else - System.out.printf("틀렸습니다.%n%n"); - } - } -} diff --git a/src/choyoungjun/report4/Report4_7.png b/src/choyoungjun/report4/Report4_7.png deleted file mode 100644 index 346243ab24be5078ac524f26b8b3f4ee92630dbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22010 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 Date: Fri, 20 Jan 2023 18:33:55 +0900 Subject: [PATCH 4/9] =?UTF-8?q?feat:=20report3,report4=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report3/Report3_1 | 24 +++++++++++++++++++++ src/choyoungjun/report3/Report3_10.java | 26 +++++++++++++++++++++++ src/choyoungjun/report3/Report3_2.java | 12 +++++++++++ src/choyoungjun/report3/Report3_3.java | 13 ++++++++++++ src/choyoungjun/report3/Report3_4.java | 16 ++++++++++++++ src/choyoungjun/report3/Report3_5.java | 16 ++++++++++++++ src/choyoungjun/report3/Report3_6.java | 9 ++++++++ src/choyoungjun/report3/Report3_7.java | 15 +++++++++++++ src/choyoungjun/report3/Report3_8.java | 8 +++++++ src/choyoungjun/report3/Report3_9.java | 13 ++++++++++++ src/choyoungjun/report4/Report4_1 | 8 +++++++ src/choyoungjun/report4/Report4_2 | 10 +++++++++ src/choyoungjun/report4/Report4_3.java | 10 +++++++++ src/choyoungjun/report4/Report4_4.java | 26 +++++++++++++++++++++++ src/choyoungjun/report4/Report4_5.java | 26 +++++++++++++++++++++++ src/choyoungjun/report4/Report4_6.java | 27 ++++++++++++++++++++++++ src/choyoungjun/report4/Report4_7.png | Bin 0 -> 22010 bytes 17 files changed, 259 insertions(+) create mode 100644 src/choyoungjun/report3/Report3_1 create mode 100644 src/choyoungjun/report3/Report3_10.java create mode 100644 src/choyoungjun/report3/Report3_2.java create mode 100644 src/choyoungjun/report3/Report3_3.java create mode 100644 src/choyoungjun/report3/Report3_4.java create mode 100644 src/choyoungjun/report3/Report3_5.java create mode 100644 src/choyoungjun/report3/Report3_6.java create mode 100644 src/choyoungjun/report3/Report3_7.java create mode 100644 src/choyoungjun/report3/Report3_8.java create mode 100644 src/choyoungjun/report3/Report3_9.java create mode 100644 src/choyoungjun/report4/Report4_1 create mode 100644 src/choyoungjun/report4/Report4_2 create mode 100644 src/choyoungjun/report4/Report4_3.java create mode 100644 src/choyoungjun/report4/Report4_4.java create mode 100644 src/choyoungjun/report4/Report4_5.java create mode 100644 src/choyoungjun/report4/Report4_6.java create mode 100644 src/choyoungjun/report4/Report4_7.png diff --git a/src/choyoungjun/report3/Report3_1 b/src/choyoungjun/report3/Report3_1 new file mode 100644 index 0000000..2cedb4a --- /dev/null +++ b/src/choyoungjun/report3/Report3_1 @@ -0,0 +1,24 @@ +//int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식 + int x; + (10<=x && x<20) +//char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식 + char ch; + (ch!=' ' || char!= '\t') +//char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식 + char ch; + (ch=='x' || ch=='X') +//char형 변수 ch가 숫자('0'~'9')일 때 true인 조건식 + char ch; + ('0'<=ch && ch<='9') +//char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식 + char ch; + (('A'<=ch && ch<='Z') || ('a'<=ch && ch<='z')) +//int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을때 true인 조건식 + int year + (year%400 == 0 || (year%4==0 && year%100 != 0)) +//boolean형 변수 powerOn이 false일 때 true인 조건식 + boolean powerOn; + (!powerOn) +//문자열 참조변수 str이 "yes"일 때 true인 조건식 + String str; + str.equals("yes") \ No newline at end of file diff --git a/src/choyoungjun/report3/Report3_10.java b/src/choyoungjun/report3/Report3_10.java new file mode 100644 index 0000000..1bdc974 --- /dev/null +++ b/src/choyoungjun/report3/Report3_10.java @@ -0,0 +1,26 @@ +package choyoungjun.report3; + +public class Report3_10 { + public static void main(String[] args) { + // 1~100사이의 임의의 값을 얻어서 answer에 저장한다. + int answer = (int)(Math.random()*100+1); + int input = 0; //사용자입력을 저장할 공간 + int count = 0; //시도횟수를 세기위한 변수 + + // 화면으로 부터 사용자입력을 받기 위해서 Scanner클래스 사용 + java.util.Scanner s = new java.util.Scanner(System.in); + do { + count++; + System.out.print("1과 100사이의 값을 입력하세요 : "); + input = s.nextInt(); //입력받은 값을 변수 input에 저장한다. + if (input < answer) + System.out.println("더 큰 수를 입력하세요"); + else if (input > answer) + System.out.println("더 작은 수를 입력하세요"); + else{ + System.out.println("맞혔습니다."); + System.out.println("시도횟수는 "+count+"번입니다."); + } + } while(true); //무한반복문 + } +} diff --git a/src/choyoungjun/report3/Report3_2.java b/src/choyoungjun/report3/Report3_2.java new file mode 100644 index 0000000..1d1e80a --- /dev/null +++ b/src/choyoungjun/report3/Report3_2.java @@ -0,0 +1,12 @@ +package choyoungjun.report3; + +public class Report3_2 { + //4-2. 1부터 20까지의 정수중에서 2 또는 3의 배수가 아닌 수의 총합을 구하세요. + public static void main(String[] args) { + int sum = 0; + for (int i=1; i<21; i++){ + if (i%2!=0 && i%3!=0) sum += i; + } + System.out.println(sum); + } +} diff --git a/src/choyoungjun/report3/Report3_3.java b/src/choyoungjun/report3/Report3_3.java new file mode 100644 index 0000000..07efab7 --- /dev/null +++ b/src/choyoungjun/report3/Report3_3.java @@ -0,0 +1,13 @@ +package choyoungjun.report3; + +public class Report3_3 { + public static void main(String[] args) { + int sum = 0; + int totalSum = 0; + for (int i=1; i<11; i++){ + sum += i; + totalSum += sum; + } + System.out.println("totalSum="+totalSum); + } +} diff --git a/src/choyoungjun/report3/Report3_4.java b/src/choyoungjun/report3/Report3_4.java new file mode 100644 index 0000000..692ddae --- /dev/null +++ b/src/choyoungjun/report3/Report3_4.java @@ -0,0 +1,16 @@ +package choyoungjun.report3; + +public class Report3_4 { + public static void main(String[] args) { + int sum = 0; // 총합을 저장할 변수 + int num = 1; + while (true){ + if (num%2==0) sum -= num; + else sum += num; + if (sum>=100) break; + num++; + } + System.out.println("num="+num); + System.out.println("sum="+sum); + } +} diff --git a/src/choyoungjun/report3/Report3_5.java b/src/choyoungjun/report3/Report3_5.java new file mode 100644 index 0000000..270e74f --- /dev/null +++ b/src/choyoungjun/report3/Report3_5.java @@ -0,0 +1,16 @@ +package choyoungjun.report3; + +public class Report3_5 { + public static void main(String[] args) { + int i=0; + while (i<10){ + int j=0; + while (j<=i){ + System.out.print("*"); + j++; + } + System.out.println(); + i++; + } + } +} diff --git a/src/choyoungjun/report3/Report3_6.java b/src/choyoungjun/report3/Report3_6.java new file mode 100644 index 0000000..83b262f --- /dev/null +++ b/src/choyoungjun/report3/Report3_6.java @@ -0,0 +1,9 @@ +package choyoungjun.report3; + +public class Report3_6 { + public static void main(String[] args) { + for (int i=1; i<6; i++){ + System.out.println(i+" "+(6-i)); + } + } +} diff --git a/src/choyoungjun/report3/Report3_7.java b/src/choyoungjun/report3/Report3_7.java new file mode 100644 index 0000000..b6f4449 --- /dev/null +++ b/src/choyoungjun/report3/Report3_7.java @@ -0,0 +1,15 @@ +package choyoungjun.report3; + +public class Report3_7 { + public static void main(String[] args) { + String str = "12345"; + int sum = 0; + + for (int i = 0; i < str.length(); i++) { + sum += str.charAt(i)-'0'; + } + + System.out.println("sum=" + sum); + + } +} diff --git a/src/choyoungjun/report3/Report3_8.java b/src/choyoungjun/report3/Report3_8.java new file mode 100644 index 0000000..6f9bb75 --- /dev/null +++ b/src/choyoungjun/report3/Report3_8.java @@ -0,0 +1,8 @@ +package choyoungjun.report3; + +public class Report3_8 { + public static void main(String[] args) { + int value = (int)(Math.random()*6+1); + System.out.println("value:"+value); + } +} diff --git a/src/choyoungjun/report3/Report3_9.java b/src/choyoungjun/report3/Report3_9.java new file mode 100644 index 0000000..a19418e --- /dev/null +++ b/src/choyoungjun/report3/Report3_9.java @@ -0,0 +1,13 @@ +package choyoungjun.report3; + +public class Report3_9 { + public static void main(String[] args) { + int num = 12345; + int sum = 0; + while (num > 0){ + sum += num%10; + num /= 10; + } + System.out.println("sum="+sum); + } +} diff --git a/src/choyoungjun/report4/Report4_1 b/src/choyoungjun/report4/Report4_1 new file mode 100644 index 0000000..faab506 --- /dev/null +++ b/src/choyoungjun/report4/Report4_1 @@ -0,0 +1,8 @@ +//5-1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요. +int[] arr[]; +int[] arr = {1,2,3,}; +int[] arr = new int[5]; +int[] arr = new int[5]{1,2,3,4,5}; +int arr[5]; +int[] arr[] = new int[3][]; + diff --git a/src/choyoungjun/report4/Report4_2 b/src/choyoungjun/report4/Report4_2 new file mode 100644 index 0000000..59311c3 --- /dev/null +++ b/src/choyoungjun/report4/Report4_2 @@ -0,0 +1,10 @@ +//5-2. 다음과 같은 배열이 있을 때, arr[3].length의 값은? +int[][]arr ={ + {5,5,5,5,5}, + {10,10,10}, + {20,20,20,20}, + {30,30} +}; + +arr[3] = {30,30} +length = 2 \ No newline at end of file diff --git a/src/choyoungjun/report4/Report4_3.java b/src/choyoungjun/report4/Report4_3.java new file mode 100644 index 0000000..fe7e937 --- /dev/null +++ b/src/choyoungjun/report4/Report4_3.java @@ -0,0 +1,10 @@ +package choyoungjun.report4; + +public class Report4_3 { + public static void main(String[] args) { + int[] arr = {10, 20, 30, 40, 50}; + int sum = 0; + for (int i : arr) sum += i; + System.out.println("sum="+sum); + } +} diff --git a/src/choyoungjun/report4/Report4_4.java b/src/choyoungjun/report4/Report4_4.java new file mode 100644 index 0000000..e334d39 --- /dev/null +++ b/src/choyoungjun/report4/Report4_4.java @@ -0,0 +1,26 @@ +package choyoungjun.report4; + +public class Report4_4 { + public static void main(String[] args) { + int[][] arr = { + { 5, 5, 5, 5, 5 }, + { 10, 10, 10, 10, 10 }, + { 20, 20, 20, 20, 20 }, + { 30, 30, 30, 30, 30 } + }; + + int total = 0; + float average = 0; + float length = 0; + for (int[] intArr : arr){ + length += intArr.length; + for (int i=0; i", i + 1, new String(question)); + String answer = scanner.nextLine(); + + if (words[i].equals(answer.trim())) + System.out.printf("맞았습니다.%n%n"); + else + System.out.printf("틀렸습니다.%n%n"); + } + } +} diff --git a/src/choyoungjun/report4/Report4_7.png b/src/choyoungjun/report4/Report4_7.png new file mode 100644 index 0000000000000000000000000000000000000000..346243ab24be5078ac524f26b8b3f4ee92630dbe GIT binary patch literal 22010 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 Date: Wed, 25 Jan 2023 01:47:20 +0900 Subject: [PATCH 5/9] =?UTF-8?q?feat:=20=EC=A1=B0=EC=98=81=EC=A4=80=20repor?= =?UTF-8?q?t5=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report3/Report3_10.java | 1 + src/choyoungjun/report5/Report5_1.java | 21 +++++++++ src/choyoungjun/report5/Report5_2.java | 36 +++++++++++++++ src/choyoungjun/report5/Report5_3.java | 60 +++++++++++++++++++++++++ src/choyoungjun/report5/Report5_4.java | 4 ++ src/choyoungjun/report5/Report5_5 | 19 ++++++++ src/choyoungjun/report5/Report5_6 | 23 ++++++++++ 7 files changed, 164 insertions(+) create mode 100644 src/choyoungjun/report5/Report5_1.java create mode 100644 src/choyoungjun/report5/Report5_2.java create mode 100644 src/choyoungjun/report5/Report5_3.java create mode 100644 src/choyoungjun/report5/Report5_4.java create mode 100644 src/choyoungjun/report5/Report5_5 create mode 100644 src/choyoungjun/report5/Report5_6 diff --git a/src/choyoungjun/report3/Report3_10.java b/src/choyoungjun/report3/Report3_10.java index 1bdc974..fbe5c72 100644 --- a/src/choyoungjun/report3/Report3_10.java +++ b/src/choyoungjun/report3/Report3_10.java @@ -20,6 +20,7 @@ else if (input > answer) else{ System.out.println("맞혔습니다."); System.out.println("시도횟수는 "+count+"번입니다."); + break; } } while(true); //무한반복문 } diff --git a/src/choyoungjun/report5/Report5_1.java b/src/choyoungjun/report5/Report5_1.java new file mode 100644 index 0000000..ada6a96 --- /dev/null +++ b/src/choyoungjun/report5/Report5_1.java @@ -0,0 +1,21 @@ +package choyoungjun.report5; + +public class Report5_1 { + public static void main(String[] args) { + //6-1. 다음과 같은 멤버 변수를 갖는 Student 클래스를 정의하세요. + //타입 : String, 변수명 : name, 설명 : 학생 이름 + //타입 : int, 변수명 : ban, 설명 : 반 + //타입 : int, 변수명 : no, 설명 : 번호 + //타입 : int, 변수명 : kor, 설명 : 국어 점수 + //타입 : int, 변수명 : eng, 설명 : 영어 점수 + //타입 : int, 변수명 : math, 설명 : 수학 점수 + } +} +//class Student{ +// String name; +// int ban; +// int no; +// int kor; +// int eng; +// int math; +//} \ No newline at end of file diff --git a/src/choyoungjun/report5/Report5_2.java b/src/choyoungjun/report5/Report5_2.java new file mode 100644 index 0000000..f96017c --- /dev/null +++ b/src/choyoungjun/report5/Report5_2.java @@ -0,0 +1,36 @@ +package choyoungjun.report5; + +//6-2. 6-1에서 정의한 Student 클래스에 생성자와 info()를 추가해서 실행결과와 같은 결과를 얻도록 하세요. +public class Report5_2 { + public static void main(String[] args) { +// Student s = new Student("홍길동", 1, 1, 100, 60, 76); +// +// String str = s.info(); +// System.out.println(str); + + // 예상 결과 : 홍길동, 1, 1, 100, 60, 76, 236, 78.7 + } +} +//class Student{ +// String name; +// int ban; +// int no; +// int kor; +// int eng; +// int math; +// int total; +// double average; +// Student(String name, int ban, int no, int kor, int eng, int math){ +// this.name = name; +// this.ban = ban; +// this.no = no; +// this.kor = kor; +// this.eng = eng; +// this.math = math; +// this.total = kor+eng+math; +// this.average = (Math.round(this.total/3d*10))/10d; +// } +// public String info(){ +// return name+", "+ban+", "+no+", "+kor+", "+eng+", "+math+", "+total+", "+average; +// } +//} \ No newline at end of file diff --git a/src/choyoungjun/report5/Report5_3.java b/src/choyoungjun/report5/Report5_3.java new file mode 100644 index 0000000..a13c95e --- /dev/null +++ b/src/choyoungjun/report5/Report5_3.java @@ -0,0 +1,60 @@ +package choyoungjun.report5; +//6-3. 연습문제 6-1에서 정의한 Student 클래스에 다음과 같이 정의된 두 개의 메서드를 추가하세요. +//1. 메서드명 : getTotal +//기능 : 국어(kor), 영어(eng), 수학(math)의 점수를 모두 더해서 반환한다. +//반환타입 : int +//매개변수 : 없음 +//2. 메서드명 : getAverage +//기능 : 총점(국어점수+영어점수+수학점수)을 과목수로 나눈 평균을 구한다. +//소수점 둘째자리에서 반올림할 것. +//반환타입 : float +//매개변수 : 없음 + + +public class Report5_3 { + public static void main(String[] args) { + Student s = new Student(); + s.name = "홍길동"; + s.ban = 1; + s.no = 1; + s.kor = 100; + s.eng = 60; + s.math = 76; + System.out.println("이름 :"+s.name); + System.out.println("총점 :"+s.getTotal()); + System.out.println("평균 :"+s.getAverage()); + }//예상 결과 : 이름 : 홍길동, 총점 : 236, 평균 : 78.7 +} +class Student{ + String name; + int ban; + int no; + int kor; + int eng; + int math; + int total; + float average; + + public Student() { + } + + Student(String name, int ban, int no, int kor, int eng, int math){ + this.name = name; + this.ban = ban; + this.no = no; + this.kor = kor; + this.eng = eng; + this.math = math; + this.total = getTotal(); + this.average = getAverage(); + } + public int getTotal(){ + return kor+eng+math; + } + public float getAverage(){ + return (Math.round(this.getTotal()/3d*10))/10f; + } + public String info(){ + return name+", "+ban+", "+no+", "+kor+", "+eng+", "+math+", "+total+", "+average; + } +} \ No newline at end of file diff --git a/src/choyoungjun/report5/Report5_4.java b/src/choyoungjun/report5/Report5_4.java new file mode 100644 index 0000000..d7cecc6 --- /dev/null +++ b/src/choyoungjun/report5/Report5_4.java @@ -0,0 +1,4 @@ +package choyoungjun.report5; + +public class Report5_4 { +} diff --git a/src/choyoungjun/report5/Report5_5 b/src/choyoungjun/report5/Report5_5 new file mode 100644 index 0000000..1afb681 --- /dev/null +++ b/src/choyoungjun/report5/Report5_5 @@ -0,0 +1,19 @@ +//6-5. 다음의 코드에 정의된 변수들을 종류별(클래스 변수,인스턴스 변수, 지역변수)로 구분해서 적으세요. +class PlayingCard { + int kind; + int num; + static int width; + static int height; + PlayingCard(int k, int n) { + kind = k; + num = n; + } + public static void main(String args[]) { + PlayingCard card = new PlayingCard(1,1); + } +} + +해설 +cv : width, height +iv : kind, num +lv : k, n, card \ No newline at end of file diff --git a/src/choyoungjun/report5/Report5_6 b/src/choyoungjun/report5/Report5_6 new file mode 100644 index 0000000..42ad7e0 --- /dev/null +++ b/src/choyoungjun/report5/Report5_6 @@ -0,0 +1,23 @@ +//6-7. 다음은 컴퓨터 게임의 병사(marine)를 클래스로 정의한 것이다. +//이 클래스의 멤버 중에 static을 붙여야 하는 것은 어떤 것들이고 그 이유는 무엇인가? +//(단, 모든 병사의 공격력과 방어력은 같아야 한다.) +class Marine { + int x=0, y=0; //Marine의 위치좌표 (x,y) + int hp = 60; //현재 체력 + int weapon = 6; //공격력 + int armor = 0; //방어력 + void weaponUp() { + weapon++; + } + void armorUp() { + armor++; + } + void move(int x, int y) { + this.x = x; + this.y = y; + } +} + +해설 +weapon과 armor에 static을 붙여야 한다. 조건에 모든 병사의 공격력과 방어력은 같아야 한다고 기술되어있기 때문 +상식적으로 생각해도 Marine이 움직여야 하고, hp는 모든 병사마다 다르기 때문에 iv가 되어야 함 \ No newline at end of file From 7dcdc0815f8e0738c5843f07fc015d7b93cf2432 Mon Sep 17 00:00:00 2001 From: choincnp Date: Wed, 25 Jan 2023 01:47:33 +0900 Subject: [PATCH 6/9] =?UTF-8?q?feat:=20=EC=A1=B0=EC=98=81=EC=A4=80=20repor?= =?UTF-8?q?t5=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report6/Report6_1.md | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/choyoungjun/report6/Report6_1.md diff --git a/src/choyoungjun/report6/Report6_1.md b/src/choyoungjun/report6/Report6_1.md new file mode 100644 index 0000000..c9cacd3 --- /dev/null +++ b/src/choyoungjun/report6/Report6_1.md @@ -0,0 +1,69 @@ +### 6-8. 다음 중 생성자에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +- [ ] 모든 생성자의 이름은 클래스의 이름과 동일해야한다. +- [x] 생성자는 객체를 생성하기 위한 것이다. + - 생성하기 위한 것이 아니라, 생성될 때 호출되는 '초기화 메서드'이다. +- [ ] 클래스에는 생성자가 반드시 하나 이상 있어야 한다. +- [ ] 생성자가 없는 클래스는 컴파일러가 기본 생성자를 추가한다. +- [x] 생성자는 오버로딩 할 수 없다. + - overloading 가능하다. +--- +### 6-9. 다음 중 this에 대한 설명으로 맞지 않은 것은? (모두 고르시오) +- [ ] 객체 자신을 가리키는 참조변수이다. +- [x] 클래스 내에서라면 어디서든 사용할 수 있다. + - 객체 안에서만 사용가능하다. +- [ ] 지역변수와 인스턴스변수를 구별할 때 사용한다. +- [ ] 클래스 메서드 내에서는 사용할 수 없다. +--- +### 6-10. 다음 중 오버로딩이 성립하기 위한 조건이 아닌 것은? (모두 고르시오) +- [ ] 메서드의 이름이 같아야 한다. +- [ ] 매개변수의 개수나 타입이 달라야 한다. +- [x] 리턴타입이 달라야 한다. + - 반환타입은 상관없다. +- [x] 매개변수의 이름이 달라야 한다. + - 매개변수의 이름은 상관없다. +--- +### 6-11. 다음 중 아래의 add메서드를 올바르게 오버로딩 한 것은? (모두 고르시오) +> long add(int a, int b) { return a+b; } + +- [ ] long add(int x, int y) { return x+y; } + - 매개변수의 타입, 개수 같다. +- [x] long add(long a, long b) { return a+b; } +- [x] int add(byte a, byte b) { return a+b; } +- [x] int add(long a, int b) { return (int)(a+b); } +--- +### 6-12. 다음 중 초기화에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +- [ ] 멤버변수는 자동 초기화되므로 초기화하지 않고도 값을 참고할 수 있다. +- [ ] 지역변수는 사용하기 전에 반드시 초기화해야 한다. +- [x] 초기화 블럭보다 생성자가 먼저 수행된다. + - 자 > 명 > 초 > 생 순서로 수행이다. +- [ ] 명시적 초기화를 제일 우선적으로 고려해야 한다. +- [x] 클래스변수보다 인스턴스변수가 먼저 초기화된다 + - cv -> iv 순서로 초기화된다. +--- +### 6-13. 다음 중 인스턴스변수의 초기화 순서가 올바른 것은? +- [x] 기본값-명시적초기화-초기화블럭-생성자 + - 자 > 명 > 초 > 생 +- [ ] 기본값-명시적초기화-생성자-초기화블럭 +- [ ] 기본값-초기화블럭-명시적초기화-생성자 +- [ ] 기본값-초기화블럭-생성자-명시적초기화 +--- +### 6-14. 다음 중 지역변수에 대한 설명으로 옳지 않은 것은? (모두 고르시오) +- [x] 자동 초기화되므로 별도의 초기화가 필요없다. + - 초기화 꼭 해줘야한다. 별도의 초기화가 필요없는것은 iv이다. + - 다만 메서드의 아규먼트로 붙은 lv는 자동초기화된다. +- [ ] 지역변수가 선언된 메서드가 종료되면 지역변수도 함께 소멸된다. +- [ ] 메서드의 매개변수로 선언된 변수도 지역변수이다. +- [ ] 클래스변수나 인스턴스변수보다 메모리 부담이 적다. +- [x] 힙(heap)영역에 생성되며 가비지 컬렉터에 의해 소멸된다. + - 힙에서는 iv를 다룸, lv는 콜스택에 생성된다. +--- +### 6-15. 호출스택이 다음과 같은 상황일 때 옳지 않은 설명은? (모두 고르시오) +![img](img.png) +- [ ] 제일 먼저 호출스택에 저장된 것은 main메서드이다. +- [x] println메서드를 제외한 나머지 메서드들은 모두 종료된 상태이다. + - 아직 실행 중임;; +- [ ] method2메서드를 호출한 것은 main메서드이다. +- [ ] println메서드가 종료되면 method1메서드가 수행을 재개한다. +- [ ] main-method2-method1-println의 순서로 호출되었다. +- [ ] 현재 실행중인 메서드는 println뿐이다. + - 실행은 println, 나머지 메서드는 대기 중이다. \ No newline at end of file From 7b170edf27d4794b4f17035051f546bd255d35e5 Mon Sep 17 00:00:00 2001 From: choincnp Date: Wed, 25 Jan 2023 01:50:01 +0900 Subject: [PATCH 7/9] =?UTF-8?q?feat:=20=EC=A1=B0=EC=98=81=EC=A4=80=20repor?= =?UTF-8?q?t6,=20report7=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report6/img.png | Bin 0 -> 18862 bytes src/choyoungjun/report7/Report7_1.java | 27 +++++++++++++++ src/choyoungjun/report7/Report7_2.java | 21 ++++++++++++ src/choyoungjun/report7/Report7_3.java | 45 +++++++++++++++++++++++++ src/choyoungjun/report7/Report7_4.java | 27 +++++++++++++++ src/choyoungjun/report7/Report7_5.java | 18 ++++++++++ 6 files changed, 138 insertions(+) create mode 100644 src/choyoungjun/report6/img.png create mode 100644 src/choyoungjun/report7/Report7_1.java create mode 100644 src/choyoungjun/report7/Report7_2.java create mode 100644 src/choyoungjun/report7/Report7_3.java create mode 100644 src/choyoungjun/report7/Report7_4.java create mode 100644 src/choyoungjun/report7/Report7_5.java diff --git a/src/choyoungjun/report6/img.png b/src/choyoungjun/report6/img.png new file mode 100644 index 0000000000000000000000000000000000000000..d56f1a2660fe7ac3e64ef31e6f31b98075dab045 GIT binary patch literal 18862 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 literal 0 HcmV?d00001 diff --git a/src/choyoungjun/report7/Report7_1.java b/src/choyoungjun/report7/Report7_1.java new file mode 100644 index 0000000..7a0157d --- /dev/null +++ b/src/choyoungjun/report7/Report7_1.java @@ -0,0 +1,27 @@ +package choyoungjun.report7; +//6-17. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : shuffle +// 기능 +// 주어진 배열에 담긴 값의 위치를 바꾸는 작업을 반복하여 뒤섞이게 한다. +// 처리한 배열을 반환한다. +// 반환타입 : int[] +// 매개변수 : int[] arr - 정수값이 담긴 배열 +public class Report7_1 { + public static void main(String[] args) { + int[] original = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + System.out.println(java.util.Arrays.toString(original)); + + int[] result = shuffle(original); + System.out.println(java.util.Arrays.toString(result)); + } + static int[] shuffle(int[] arr){ + for (int i=0; i MIN_VOLUME) volume--; + } + void channelUp() { + if (channel == MAX_CHANNEL) channel = MIN_CHANNEL; + else channel++; + } + void channelDown() { + if (channel == MIN_CHANNEL) channel = MAX_CHANNEL; + else channel--; + } +} +public class Report7_3 { + public static void main(String args[]) { + MyTv t = new MyTv(); + t.channel = 100; + t.volume = 0; + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + t.channelDown(); + t.volumeDown(); + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + t.volume = 100; + t.channelUp(); + t.volumeUp(); + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + } +} + +//예상 결과 : CH: 100, VOL: 0 / CH: 99, VOL: 0 / CH: 100, VOL: 100 \ No newline at end of file diff --git a/src/choyoungjun/report7/Report7_4.java b/src/choyoungjun/report7/Report7_4.java new file mode 100644 index 0000000..a7a1c58 --- /dev/null +++ b/src/choyoungjun/report7/Report7_4.java @@ -0,0 +1,27 @@ +package choyoungjun.report7; + +import java.util.Arrays; + +//6-20. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : max +// 기능 +// 주어진 int형 배열의 값 중에서 제일 큰 값을 반환한다. +// 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999를 반환한다. +// 반환타입 : int +// 매개변수 : int[] arr - 최대값을 구할 배열 +public class Report7_4 { + public static void main(String[] args) { + int[] data = {3,2,9,4,7}; + System.out.println(java.util.Arrays.toString(data)); + System.out.println("최대값 :"+max(data)); + System.out.println("최대값 :"+max(null)); + System.out.println("최대값 :"+max(new int[]{})); // 크기가 0인 배열 } + }//예상 결과 : 최대값: 9 / 최대값: -99999 최대값: -999999 + static int max(int[] arr){ + if (arr==null || arr.length==0) return -999999; + else { + Arrays.sort(arr); + return arr[arr.length-1]; + } + } +} \ No newline at end of file diff --git a/src/choyoungjun/report7/Report7_5.java b/src/choyoungjun/report7/Report7_5.java new file mode 100644 index 0000000..fbcbdbb --- /dev/null +++ b/src/choyoungjun/report7/Report7_5.java @@ -0,0 +1,18 @@ +package choyoungjun.report7; +//6-21. 다음과 같이 정의된 메서드를 작성하고 테스트하시오. +// 메서드명: abs +// 기능 : 주어진 값의 절대값을 반환한다. +// 반환타입 : int +// 매개변수 : int value +public class Report7_5 { + public static void main(String[] args) { + int value = 5; + System.out.println(value + "의 절대값 :" + abs(value)); + value = -10; + System.out.println(value + "의 절대값 :" + abs(value)); + } + static int abs(int value){ // Math.abs 안쓰고 해보자 + return value>=0? value : -value; + } +} +//예상 결과 : 5의 절대값 : 5 / -10의 절대값 : 10 From 27a122e309a88e16a4a290bc791ef4e2098f1753 Mon Sep 17 00:00:00 2001 From: choincnp Date: Wed, 25 Jan 2023 01:50:21 +0900 Subject: [PATCH 8/9] =?UTF-8?q?feat:=20=EC=A1=B0=EC=98=81=EC=A4=80=20repor?= =?UTF-8?q?t8=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/report8/Report8_1.java | 80 ++++++++++++++++++++++++++ src/choyoungjun/report8/Report8_2.java | 29 ++++++++++ src/choyoungjun/report8/Report8_3.java | 36 ++++++++++++ src/choyoungjun/report8/Report8_4.java | 39 +++++++++++++ src/choyoungjun/report8/Report8_5.java | 58 +++++++++++++++++++ 5 files changed, 242 insertions(+) create mode 100644 src/choyoungjun/report8/Report8_1.java create mode 100644 src/choyoungjun/report8/Report8_2.java create mode 100644 src/choyoungjun/report8/Report8_3.java create mode 100644 src/choyoungjun/report8/Report8_4.java create mode 100644 src/choyoungjun/report8/Report8_5.java diff --git a/src/choyoungjun/report8/Report8_1.java b/src/choyoungjun/report8/Report8_1.java new file mode 100644 index 0000000..45f4bde --- /dev/null +++ b/src/choyoungjun/report8/Report8_1.java @@ -0,0 +1,80 @@ +package choyoungjun.report8; +//7-1. +// 섯다카드 20장을 포함하는 섯다카드 한 벌(SutdaDeck클래스)을 정의한 것이다. +// 섯다카드 20장을 담는 SutdaCard배열을 초기화하시오. +// 단, 섯다카드는 1부터 10까지의 숫자 가 적힌 카드가 한 쌍씩 있고, 숫자가 1, 3, 8인 경우에는 둘 중의 한 장은 광(Kwang)이 어야 한다. +// 즉, SutdaCard의 인스턴스변수 isKwang의 값이 true이어야 한다. +class SutdaDeck { + final int CARD_NUM = 20; + SutdaCard[] cards = new SutdaCard[CARD_NUM]; + + SutdaDeck() { + for (int i=0; i MAX_VOLUME || volume < MIN_VOLUME) + return; + this.volume = volume; + } + + public int getVolume() { + return volume; + } + + public void setChannel(int channel) { + if (channel > MAX_CHANNEL || channel < MIN_CHANNEL) + return; + + prevChannel = this.channel; + this.channel = channel; + } + + public int getChannel() { + return channel; + } + + public int gotoPrevChannel(){ + setChannel(prevChannel); + return channel; + } +} \ No newline at end of file From 42fac00c45425e87d9ebe0bff0ad93b8215c431e Mon Sep 17 00:00:00 2001 From: choincnp Date: Fri, 27 Jan 2023 10:42:07 +0900 Subject: [PATCH 9/9] =?UTF-8?q?feat=20:=20=EC=A1=B0=EC=98=81=EC=A4=80=20SO?= =?UTF-8?q?LID=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/choyoungjun/SOLID/DIP.java | 119 +++++++++++++++++++++++++ src/choyoungjun/SOLID/ISP.java | 104 ++++++++++++++++++++++ src/choyoungjun/SOLID/LSP.java | 74 +++++++++++++++ src/choyoungjun/SOLID/OCP.java | 104 ++++++++++++++++++++++ src/choyoungjun/SOLID/SRP.java | 158 +++++++++++++++++++++++++++++++++ 5 files changed, 559 insertions(+) create mode 100644 src/choyoungjun/SOLID/DIP.java create mode 100644 src/choyoungjun/SOLID/ISP.java create mode 100644 src/choyoungjun/SOLID/LSP.java create mode 100644 src/choyoungjun/SOLID/OCP.java create mode 100644 src/choyoungjun/SOLID/SRP.java diff --git a/src/choyoungjun/SOLID/DIP.java b/src/choyoungjun/SOLID/DIP.java new file mode 100644 index 0000000..a368e1c --- /dev/null +++ b/src/choyoungjun/SOLID/DIP.java @@ -0,0 +1,119 @@ +package choyoungjun.SOLID; +//원칙 적용 방법 +//고수준 모듈의 변화되는 부분을 추상화합니다. +//저수준 모듈을 추상화에 의존시킵니다. +//계산기 클래스에 추상화된 부모 클래스를 포함시킵니다. ok +//연산 클래스는 추상화된 부모 클래스를 상속받아 기능별로 구현합니다. ok + +//문제 +//계산기(고수준 모듈)가 개별 연산 클래스(저수준 모듈)을 포함하며 계산 기능을 구현할 때 연산 클래스에 의존하고 있습니다. +//저수준 모듈에서 변경이 발생되면 고수준 모듈에 수정사항이 발생합니다. + +import java.util.HashMap; +import java.util.Map; + +//클라이언트는 calculator를 통해 통신해야 한다. +public class DIP { + public static void main(String[] args) throws InstantiationException, IllegalAccessException { + Calculator calculator = new Calculator( + new AddOperation(), + new SubstractOperation(), + new MultiplyOperation(), + new DivideOperation() + ); + + int firNum = 140; + int secNum = 60; + + String operator = "+"; + int answer = calculator.calculate(operator, firNum, secNum); + System.out.println(operator + " answer = " + answer); + + operator = "-"; + answer = calculator.calculate(operator, firNum, secNum); + System.out.println(operator + " answer = " + answer); + + operator = "*"; + answer = calculator.calculate(operator, firNum, secNum); + System.out.println(operator + " answer = " + answer); + + operator = "/"; + answer = calculator.calculate(operator, firNum, secNum); + System.out.println(operator + " answer = " + answer); + } +} +class Calculator { + + private AbstractOperation abstractOperation; + + Map abstractOperationMap = new HashMap<>(); + public Calculator(AbstractOperation...abstractOperations) throws InstantiationException, IllegalAccessException { + for (AbstractOperation abstractOperation : abstractOperations){ + abstractOperationMap.put(abstractOperation.getOperator(), abstractOperation.getClass().newInstance()); + } + } + + public void setAbstractOperation(AbstractOperation abstractOperation) { + this.abstractOperation = abstractOperation; + } + + public int calculate(String operator, int firstNumber, int secondNumber) { + int answer = 0; // 문제 : operator라는 string과 그 주인장을 연결시켜야 함 + abstractOperation = abstractOperationMap.get(operator); + answer = abstractOperation.operate(firstNumber, secondNumber); + return answer; + } +} +abstract class AbstractOperation{ + private String operator; + + public abstract int operate(int firstNumber, int secondNumber); + + public String getOperator() { + return operator; + } + + public void setOperator(String operator) { + this.operator = operator; + } + +} + +class AddOperation extends AbstractOperation{ + AddOperation(){ + this.setOperator("+"); + } + @Override + public int operate(int firstNumber, int secondNumber){ + return firstNumber + secondNumber; + } +} +class SubstractOperation extends AbstractOperation { + SubstractOperation(){ + this.setOperator("-"); + } + @Override + public int operate(int firstNumber, int secondNumber){ + return firstNumber - secondNumber; + } +} + +class MultiplyOperation extends AbstractOperation{ + MultiplyOperation(){ + this.setOperator("*"); + } + @Override + public int operate(int firstNumber, int secondNumber){ + return firstNumber * secondNumber; + } +} + +class DivideOperation extends AbstractOperation{ + DivideOperation(){ + this.setOperator("/"); + } + @Override + public int operate(int firstNumber, int secondNumber){ + return firstNumber / secondNumber; + } +} \ No newline at end of file diff --git a/src/choyoungjun/SOLID/ISP.java b/src/choyoungjun/SOLID/ISP.java new file mode 100644 index 0000000..7d0fb43 --- /dev/null +++ b/src/choyoungjun/SOLID/ISP.java @@ -0,0 +1,104 @@ +package choyoungjun.SOLID; + +public class ISP { + public static void main(String[] args) { + int firNum = 140; + int secNum = 60; + + // 연산 결과만 출력 + DisplayTypeA displayTypeA = new DisplayTypeA(); + displayTypeA.displayResult(new AddOperation(), firNum, secNum); + + // 연산 과정까지 출력 + DisplayTypeB displayTypeB = new DisplayTypeB(); + displayTypeB.displayResultWithOperator(new AddOperation(), firNum, secNum); + } +} +class Calculator { + public int calculate(AbstractOperation operation, int firstNumber, int secondNumber){ + return operation.operate(firstNumber, secondNumber); + } +} + +abstract class AbstractOperation { + public abstract int operate(int firstNumber, int secondNumber); + public abstract String getOperator(); +} + +interface DisplayResult { + void displayResult(AbstractOperation operation, int firstNumber, int secondNumber) throws Exception; +} + +interface DisplayWithOperator{ + void displayResultWithOperator(AbstractOperation operation, int firstNumber, int secondNumber) throws Exception; +} + +// 연산 결과만 출력 +class DisplayTypeA extends Calculator implements DisplayResult { + + @Override + public void displayResult(AbstractOperation operation, int firstNumber, int secondNumber) { + int answer = operation.operate(firstNumber, secondNumber); + System.out.println(answer); + } + +} + +// 연산 과정을 포함한 출력 +class DisplayTypeB extends Calculator implements DisplayWithOperator { + + @Override + public void displayResultWithOperator(AbstractOperation operation, int firstNumber, int secondNumber) { + int answer = operation.operate(firstNumber, secondNumber); + String operator = operation.getOperator(); + System.out.println(firstNumber + " " + operator + " " + secondNumber + " = " + answer); + } +} + +class AddOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber + secondNumber; + } + + @Override + public String getOperator() { + return "+"; + } +} + +class SubstractOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber - secondNumber; + } + + @Override + public String getOperator() { + return "-"; + } +} + +class MultiplyOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber * secondNumber; + } + + @Override + public String getOperator() { + return "*"; + } +} + +class DivideOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber / secondNumber; + } + + @Override + public String getOperator() { + return "/"; + } +} \ No newline at end of file diff --git a/src/choyoungjun/SOLID/LSP.java b/src/choyoungjun/SOLID/LSP.java new file mode 100644 index 0000000..6c1a8cb --- /dev/null +++ b/src/choyoungjun/SOLID/LSP.java @@ -0,0 +1,74 @@ +package choyoungjun.SOLID; + +//원칙 적용 방법 +//부모 와 자식 클래스 사이의 행위가 일관성이 있도록 추상화를 좀 더 정교하게 구현합니다. +//연산 기능을 추상화한 부모 클래스에 피연산자 값의 유효성 검사를 진행하는 메서드를 추가해 줍니다. +//계산기 클래스에서는 이 메서드를 사용하여 유효성 검사를 진행하고 이 유효성 검사가 필요한 자식 클래스에서는 이 추가된 유효성 검사 조건을 구체화 합니다. +//isInvalid : 추상 메서드 + +public class LSP { + public static void main(String[] args) { + Calculator calculator = new Calculator(); + + int firNum = 140; + int secNum = 0; + + int answer = calculator.calculate(new AddOperation(), firNum, secNum); + System.out.println(" + answer = " + answer); + + answer = calculator.calculate(new SubstractOperation(), firNum, secNum); + System.out.println(" - answer = " + answer); + + answer = calculator.calculate(new MultiplyOperation(), firNum, secNum); + System.out.println(" * answer = " + answer); + + answer = calculator.calculate(new DivideOperation(), firNum, secNum); + System.out.println(" / answer = " + answer); + } +} + +class Calculator { + // 연산 기능을 추상화된 부모클래스에 의존하여 처리한다. + public int calculate(AbstractOperation operation, int firstNumber, int secondNumber) { + if (!operation.isValid(firstNumber, secondNumber)) return -99999; + return operation.operate(firstNumber, secondNumber); + } +} + +abstract class AbstractOperation { + public boolean isValid(int firstNumber, int secondNumber){return true;} + public abstract int operate(int firstNumber, int secondNumber); +} + +class AddOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber + secondNumber; + } +} + +class SubstractOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber - secondNumber; + } +} + +class MultiplyOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber * secondNumber; + } +} + +class DivideOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber/secondNumber; + } + @Override + public boolean isValid(int firstNumber, int secondNumber) { + if (secondNumber==0) return false; + return true; + } +} \ No newline at end of file diff --git a/src/choyoungjun/SOLID/OCP.java b/src/choyoungjun/SOLID/OCP.java new file mode 100644 index 0000000..7f7e6f6 --- /dev/null +++ b/src/choyoungjun/SOLID/OCP.java @@ -0,0 +1,104 @@ +package choyoungjun.SOLID; +//변화되는 부분을 추상화해서 변화를 고정 시킵니다. +//기능이 추가될 때 클래스의 상속을 통해서 하위 클래스에서 기능을 구현 하도록 합니다. +//기존코드를 수정하지 않아도 객체 상속의 다형성 원리에 의해 기능이 확장 되도록 합니다. +//연산 클래스는 추상화된 부모 클래스를 상속받아 기능별로 구현합니다. +//AbstractOperation : 추상 클래스 +//operate : 추상 메서드 + +//고려사항 : 계산기는 늘 2개의 숫자를 가지고 움직인다. +//안되는거 : 위에 new 연산자로 iv로 주입해버리고싶은데 어떻게 안되나요? + +public class OCP { + public static void main(String[] args) { + Calculator calculator = new Calculator( +// new AddOperation(), +// new SubstractOperation() +// new MultiplyOperation() +// new DivideOperation() + ); + + int firNum = 140; + int secNum = 60; + + int answer = calculator.add(firNum,secNum); + System.out.println(" + answer = " + answer); + + answer = calculator.substract(firNum,secNum); + System.out.println(" - answer = " + answer); + + answer = calculator.multiply(firNum, secNum); + System.out.println(" * answer = " + answer); + + answer = calculator.divide(firNum, secNum); + System.out.println(" / answer = " + answer); + } +} +class Calculator { + private AbstractOperation abstractOperation; + + public void setAbstractOperation(AbstractOperation abstractOperation) { + this.abstractOperation = abstractOperation; + } + + public Calculator(AbstractOperation...abstractOperations) { + for (AbstractOperation abstractOperation : abstractOperations){ + this.setAbstractOperation(abstractOperation); + } + } // 가변인자 for문돌려서 자동으로 추가함 + + + public int add(int firstNumber,int secondNumber){ + setAbstractOperation(new AddOperation()); + return abstractOperation.operate(firstNumber,secondNumber); + } + + public int substract(int firstNumber, int secondNumber){ + setAbstractOperation(new SubstractOperation()); + return abstractOperation.operate(firstNumber, secondNumber); + } + + public int multiply(int firstNumber, int secondNumber){ + setAbstractOperation(new MultiplyOperation()); + return abstractOperation.operate(firstNumber, secondNumber); + } + + public int divide(int firstNumber, int secondNumber){ + setAbstractOperation(new DivideOperation()); + return abstractOperation.operate(firstNumber, secondNumber); + } + + +} + +class AddOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber+secondNumber; + } +} + +class SubstractOperation extends AbstractOperation { + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber-secondNumber; + } +} + +class MultiplyOperation extends AbstractOperation{ + @Override + public int operate(int firstNumber, int secondNumber){ + return firstNumber * secondNumber; + } +} + +class DivideOperation extends AbstractOperation{ + @Override + public int operate(int firstNumber, int secondNumber) { + return firstNumber/secondNumber; + } +} + +abstract class AbstractOperation{ + abstract public int operate(int firstNumber, int secondNumber); +} \ No newline at end of file diff --git a/src/choyoungjun/SOLID/SRP.java b/src/choyoungjun/SOLID/SRP.java new file mode 100644 index 0000000..96db897 --- /dev/null +++ b/src/choyoungjun/SOLID/SRP.java @@ -0,0 +1,158 @@ +package choyoungjun.SOLID; + +import static java.lang.System.exit; + +public class SRP { + public static void main(String[] args) { + Calculator calculator = new Calculator(); + + calculator.setFirstNumber(140); + calculator.setSecondNumber(0); + + + int answer = calculator.addOperation(); + System.out.println("answer = " + answer); + + answer = calculator.subtractOperation(); + System.out.println("answer = " + answer); + + answer = calculator.multiplyOperation(); + System.out.println("answer = " + answer); + + answer = (int)calculator.divideOperation(); + System.out.println("answer = " + answer); + } +} +class Calculator { + private int firstNumber; + private int secondNumber; + public Calculator(){ + this.firstNumber = 0; + this.secondNumber = 0; + } + + public Calculator(int firstNumber, int secondNumber) { + this.firstNumber = firstNumber; + this.secondNumber = secondNumber; + } + + public int addOperation() { + AddOperation addOperation = new AddOperation(firstNumber,secondNumber); + return addOperation.operate(); + } + public int subtractOperation(){ + SubstractOperation substractOperation = new SubstractOperation(firstNumber, secondNumber); + return substractOperation.operate(); + } + + public int multiplyOperation(){ + MultiplyOperation multiplyOperation = new MultiplyOperation(firstNumber,secondNumber); + return multiplyOperation.operate(); + } + public double divideOperation() { + DivideOperation divideOperation = new DivideOperation(firstNumber, secondNumber); + return divideOperation.operate(); + } + + public void setFirstNumber(int firstNumber) { + this.firstNumber = firstNumber; + } + + public void setSecondNumber(int secondNumber) { + this.secondNumber = secondNumber; + } +} + +class AddOperation{ + private int firstNumber; + private int secondNumber; + + public AddOperation(int firstNumber, int secondNumber) { + this.firstNumber = firstNumber; + this.secondNumber = secondNumber; + } + + public void setFirstNumber(int firstNumber) { + this.firstNumber = firstNumber; + } + + public void setSecondNumber(int secondNumber) { + this.secondNumber = secondNumber; + } + + public int operate(){ + return firstNumber+secondNumber; + } +} + +class SubstractOperation{ + private int firstNumber; + private int secondNumber; + + public SubstractOperation(int firstNumber, int secondNumber) { + this.firstNumber = firstNumber; + this.secondNumber = secondNumber; + } + + public void setFirstNumber(int firstNumber) { + this.firstNumber = firstNumber; + } + + public void setSecondNumber(int secondNumber) { + this.secondNumber = secondNumber; + } + + public int operate(){ + return firstNumber-secondNumber; + } +} + +class MultiplyOperation{ + private int firstNumber; + private int secondNumber; + + public MultiplyOperation(int firstNumber, int secondNumber) { + this.firstNumber = firstNumber; + this.secondNumber = secondNumber; + } + + public void setFirstNumber(int firstNumber) { + this.firstNumber = firstNumber; + } + + public void setSecondNumber(int secondNumber) { + this.secondNumber = secondNumber; + } + + public int operate(){ + return firstNumber*secondNumber; + } +} + +class DivideOperation{ + private int firstNumber; + private int secondNumber; + + public DivideOperation(int firstNumber, int secondNumber) { + this.firstNumber = firstNumber; + this.secondNumber = secondNumber; + } + + public void setFirstNumber(int firstNumber) { + this.firstNumber = firstNumber; + } + + public void setSecondNumber(int secondNumber) { + this.secondNumber = secondNumber; + } + + public double operate(){ + try{ + return firstNumber/secondNumber; + } catch(ArithmeticException e){ + System.out.println("0으로 나눌수 없습니다. 다시 계산해주세요"); + exit(0); + } + return firstNumber/secondNumber; + } +} \ No newline at end of file