2016년 2월 1일 월요일

[JAVA 교육] Interface 인터페이스 / 내부클래스 / 예외 - 실습예제

[ Class Diagram ]


[소스코드 : OperationApplication.java]

package sk.didimdol.exercise.operation;

public class OperationApplication {
      public static void main(String[] args) {
            OperationMenu opmenu = new OperationMenu();
             opmenu.runApp();
      }
}

[소스코드 : OperationMenu.java]

package sk.didimdol.exercise.operation;

import java.util.Scanner;

public class OperationMenu {
      char menu;
      Operation op = new Calculator();

      public void runApp(){
            mainMenu();
      }

      public void mainMenu(){
            Scanner scan = new Scanner(System. in);
             boolean key = true;
             while( key){
                  System. out.println( ">> 메뉴를 선택하세요." );
                  System. out.print( ">>(A)dd, (S)ub, (M)ultiple, (D)ivide, (Q)uit : ");
                   menu = scan.next().toUpperCase().charAt(0);
                   switch( menu){
                   case 'A':
                        System. out.print( ">> 덧셈입니다. 두 수를 띄어쓰기로 구분하여 입력하세요. : " );
                        displayResult( op.add( scan.nextInt(), scan.nextInt()));
                         break;
                   case 'S':
                        System. out.print( ">> 뺄셈입니다. 두 수를 띄어쓰기로 구분하여 입력하세요. : " );
                        displayResult( op.sub( scan.nextInt(), scan.nextInt()));
                         break;
                   case 'M':
                        System. out.print( ">> 곱셈입니다. 두 수를 띄어쓰기로 구분하여 입력하세요. : " );
                        displayResult( op.multiple( scan.nextInt(), scan.nextInt()));
                         break;
                   case 'D':
                        System. out.print( ">> 나눗셈입니다. 두 수를 띄어쓰기로 구분하여 입력하세요. : " );
                        displayResult( op.divide( scan.nextDouble(), scan.nextDouble()));
                         break;
                   case 'Q':
                        System. out.println( "프로그램을 종료합니다." );
                         key = false;
                         break;
                   default:
                        System. out.println( "잘못된 메뉴를 선택하셨습니다. 다시 선택하세요." );
                  } //end switch
            } //end while
      }//end mainMenu

      public void displayResult( int x){
            System. out.println( "계산된 값 : "+x);
            System. out.println( "");
      }
      public void displayResult( double x){
            System. out.println( "계산된 값 : "+x);
            System. out.println( "");
      }
}

[소스코드 : Operation.java]

package sk.didimdol.exercise.operation;

public interface Operation {
      int add(int a, int b);
      int sub(int a, int b);
      int multiple(int a, int b);
      double divide( double a, double b);
}

[소스코드 : Calculator.java]

package sk.didimdol.exercise.operation;

public class Calculator implements Operation{

      int resultInt;
      double resultDouble;

      @Override
      public int add(int a, int b) {
             resultInt = a + b;
             return resultInt;
      }

      @Override
      public int sub(int a, int b) {
             resultInt = a - b;
             return resultInt;
      }

      @Override
      public int multiple(int a, int b) {
             resultInt = a * b;
             return resultInt;
      }

      @Override
      public double divide( double a, double b) {
             resultDouble = a/ b;
             return resultDouble;
      }

}

댓글 없음:

댓글 쓰기