如何在Java 8中合并方法重载以为一个方法名称调用不同的参数类型?

时间:2018-12-02 22:14:11

标签: java methods netbeans-8 overloading

我正在尝试更改代码以为一个方法名称合并一个int和double参数。我的最终目标是让用户选择两个数字,如果他们将一个数字输入为int,而将另一个数字输入为double,则我希望代码仍然能够说明这些不同的类型并成功打印。如下代码是到目前为止我已经掌握的基础知识,我希望获得一些有关如何更改此代码以使用方法重载的帮助。

import java.util.Scanner;
public class SimpleCalculator {
public static void main(String[] args) {
   Scanner input = new Scanner(System.in);
    System.out.println("Select operation:");
    System.out.println("1. Divide 2 numbers");
    System.out.println("2. Exit");

    System.out.print("Enter choice(1/2:");
    int choice = input.nextInt();

    if (choice == 1){
        division();
    }
    else if (choice == 2){
        Exit();
    }
    input.close();
  }

public static void division(){
    int nOne, nTwo;
    Scanner input = new Scanner(System.in);

    System.out.println("Division");

    System.out.print("First Number: ");
    nOne = input.nextInt();

    System.out.print("Second Number: ");
    nTwo = input.nextInt();

    input.close();
    System.out.println("Sum: " + nOne + " / " + nTwo + " = " + (nOne / 
    nTwo));
 }

 public static void Exit(){
    Scanner input = new Scanner(System.in);
    System.out.println("Goodbye");
    System.exit(0);
 }
 }

1 个答案:

答案 0 :(得分:3)

您需要通过参数给出数据类型。这样便有了两种方法:

public int division(int number1, int number2){
//do division
return result;
}

public double division(double number1, double number2){
//do division
return result;
}

然后可以用int和double调用方法除法,然后将选择相应的方法。