Categories: Java 언어Korean

Java 총 정리[58. Method Overloading 문제]

Method 오버로딩 문제

이제 공부를 계속 했던 오버로딩에 대해서 직접 사용하고 고민을 해봐야 한다고 생각을 합니다. 이론적인 내용만 보고 완벽이 이해하고 할 수 있다는 것은 어렵기 때문에 오버로딩을 사용을 할 수 있는 것이 더 깊어질 수 있도록 이번 걸음에서 하겠습니다.

이번 걸음에서는 배웠던 오버로딩 중에 Method 오버로딩 문제를 풀어보도록 하겠습니다. 문제를 푸는 경우에는 문제를 보고 먼저 풀어보고 추후에 정답 소스를 확인을 하시면 공부에 좀 더 도움이 될 수 있습니다.

Method 오버로딩 문제는 바로 정수와 실수 사칙 연산을 하는 프로그램을 구현을 하는 것입니다. 여러가지 방법이 있겠지만 우리가 배운 Method 오버로딩을 사용을 해서 구현을 해야 합니다. 문제를 풀 때는 배운 것을 꼭 활용해서 구현을 하는 것을 추천드립니다.

Method 오버로딩을 이용한 정수 실수 사칙 연산 문제

문제에 대한 내용은 위의 사진에 자세히 설명을 했습니다. 올바른 결과 출력과 잘못 입력을 한 경우도 출력이 되도록 구현을 해주세요. 반복문을 사용해서 계속적인 연산 프로그램을 구현을 하는 것은 아니지만 반복문을 사용한다면 더욱 좋을 수 있습니다.

※ Method 오버로딩을 꼭 사용을 해야 합니다.

Main문에 소스를 구현해 주세요. 또한 static으로 Method를 생성을 하시면 됩니다.

실행 관련 걸음 : 다섯 걸음, 여섯걸음


public class MethodTest {

    static void add(int a, int b){
        System.out.println("결과 : "+(a+b));
    }
    static void add(double a, double b){
        System.out.println("결과 : "+(a+b));
    }
    static void minus(int a, int b){
        System.out.println("결과 : "+(a-b));
    }
    static void minus(double a, double b){
        System.out.println("결과 : "+(a-b));
    }
    static void mul(int a, int b){
        System.out.println("결과 : "+(a*b));
    }
    static void mul(double a, double b){
        System.out.println("결과 : "+(a*b));
    }
    static void div(int a, int b){
        System.out.println("결과 : "+(a/b));
    }
    static void div(double a, double b){
        System.out.println("결과 : "+(a/b));
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("1. 정수 2. 실수 : ");
        int select = scanner.nextInt();

        if(select == 1 || select == 2){
            int num1 =0;
            int num2 = 0;
            double fnum1= 0.0;
            double fnum2 = 0.0;
            if(select == 1){
                System.out.print("숫자 1 : ");
                num1 = scanner.nextInt();
                System.out.print("숫자 2 : ");
                num2 = scanner.nextInt();
            }
            if(select == 2){
                System.out.print("숫자 1 : ");
                fnum1 = scanner.nextDouble();
                System.out.print("숫자 2 : ");
                fnum2 = scanner.nextDouble();
            }
            System.out.print("연산자를 입력 해주세요 : ");
            String str = scanner.next();
            if(str.equals("+")){
                if(select == 1){
                    add(num1,num2);
                }
                else{
                    add(fnum1,fnum2);
                }
            }
            else if(str.equals("-")){
                if(select == 1){
                    minus(num1,num2);
                }
                else{
                    minus(fnum1,fnum2);
                }
            }
            else if(str.equals("*")){
                if(select == 1){
                    mul(num1,num2);
                }
                else{
                    mul(fnum1,fnum2);
                }
            }
            else if(str.equals("/")){
                if(select == 1){
                    div(num1,num2);
                }
                else{
                    div(fnum1,fnum2);
                }
            }
            else{
                System.out.println("잘못된 입력입니다.");
            }

        }
        else{
            System.out.println("잘못된 입력입니다.");
        }


    }
}


        

위의 소스처럼 오버로딩을 사용하여 똑같은 이름의 메소드를 이용해서 구현을 하여 사용시 메소드 이름을 하나만 알아도 사용을 할 수 있어서 사용시 장점이 있습니다.


결과 화면


Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.