diff --git a/src/main/java/Cacluate.java b/src/main/java/Cacluate.java index 943e575..fc456c8 100644 --- a/src/main/java/Cacluate.java +++ b/src/main/java/Cacluate.java @@ -1,8 +1,6 @@ public class Cacluate { - private static int result; - - public static int calculate(int first_num, String operator, int second_num){ + public int calculate(int first_num, String operator, int second_num){ //연산부 if (operator == "+") { return add(first_num,second_num); @@ -19,16 +17,16 @@ public static int calculate(int first_num, String operator, int second_num){ throw new RuntimeException("올바르지 않는 연산자입니다."); } - private static int add(int a,int b){ + private int add(int a,int b){ return a+b; } - private static int sub(int a,int b){ + private int sub(int a,int b){ return a-b; } - private static int mul(int a,int b){ + private int mul(int a,int b){ return a*b; } - private static int div(int a,int b){ + private int div(int a,int b){ return a/b; } diff --git a/src/main/java/Input.java b/src/main/java/Input.java index 546178f..2e65df4 100644 --- a/src/main/java/Input.java +++ b/src/main/java/Input.java @@ -1,8 +1,8 @@ import java.util.Scanner; -public class Input { +class Input { - public static String[] input(){ + public String[] input(){ Scanner scan = new Scanner(System.in); String value = scan.nextLine(); String[] values = value.split(" "); diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 22dcf08..df889f1 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,11 @@ public class Main { public static void main(String[] args) { - String[] values = Input.input(); - int result = Preprocessing.classify(values); + Input i1 = new Input(); + String[] values = i1.input(); + + Preprocessing pre = new Preprocessing(); + int result = pre.classify(values); //결과값 출력 System.out.println(result); } diff --git a/src/main/java/Preprocessing.java b/src/main/java/Preprocessing.java index 18b06f1..1ff6359 100644 --- a/src/main/java/Preprocessing.java +++ b/src/main/java/Preprocessing.java @@ -1,4 +1,4 @@ -public class Preprocessing { +class Preprocessing { private static int first_num = 0; private static int second_num = 0; @@ -6,7 +6,7 @@ public class Preprocessing { public static String operator = ""; //숫자 or 연산자 or 에러(숫자x, 연산자x)? - private static boolean isNumber(String a) { + private boolean isNumber(String a) { //잠결에 해서 어떻게 했는지 설명못하겠어 무의식속에서 코드가 완성됐어 boolean isNum; isNum = true; @@ -23,7 +23,7 @@ private static boolean isNumber(String a) { } //연산자 부여 - public static void setOper(String oper) { + public void setOper(String oper) { if (oper.equals("+")) { operator = "+"; } @@ -40,17 +40,18 @@ public static void setOper(String oper) { } //숫자 부여 - public static void setNumber(int idx, String num) { + public void setNumber(int idx, String num) { if (idx == 0) { //제일 처음일때만 return_num = Integer.parseInt(num); } else { // 두번째 숫자 들어올때 first_num = return_num; second_num = Integer.parseInt(num); - return_num = Cacluate.calculate(first_num, operator, second_num); + Cacluate cal = new Cacluate(); + return_num = cal.calculate(first_num, operator, second_num); } } - public static int classify(String[] values) { + public int classify(String[] values) { //잘못된 연산식인지 먼저 확인. wrongMath(values); @@ -65,7 +66,7 @@ public static int classify(String[] values) { return return_num; }//end classify() - private static void wrongMath(String[] values) { + private void wrongMath(String[] values) { if (values.length % 2 == 0) throw new IllegalArgumentException("잘못된 연산입니다. 다시 입력하세요."); } diff --git a/src/test/java/test.java b/src/test/java/test.java index 58e0465..76f53f9 100644 --- a/src/test/java/test.java +++ b/src/test/java/test.java @@ -15,8 +15,8 @@ public class test { public void successTest() throws Exception { String value = "5 + 3 * 4 / 2"; String[] values = value.split(" "); - - assertThat(Preprocessing.classify(values)).isEqualTo(16); + Preprocessing pretest = new Preprocessing(); + assertThat(pretest.classify(values)).isEqualTo(16); } @@ -26,9 +26,9 @@ public void validationTest() { String errorValue = "2 + 3 * 4 / "; String[] errorValues = errorValue.split(" "); - + Preprocessing pretest = new Preprocessing(); assertThatThrownBy(() -> { - Preprocessing.classify(errorValues); + pretest.classify(errorValues); }).isInstanceOf(IllegalArgumentException.class) .hasMessageContaining("잘못된 연산입니다. 다시 입력하세요."); @@ -38,16 +38,14 @@ public void validationTest() { @Test @DisplayName("에러_잘못된_연산자") public void wrong_input_value() { - String errorValue = "2 + 3 _ 4"; String[] errorValues = errorValue.split(" "); + Preprocessing pretest = new Preprocessing(); assertThatThrownBy(() -> { - Preprocessing.classify(errorValues); + pretest.classify(errorValues); }).isInstanceOf(RuntimeException.class) .hasMessageContaining("올바르지 않는 연산자입니다."); } - - }