java 重载方法用户输入

bjp0bcyl  于 2023-02-15  发布在  Java
关注(0)|答案(3)|浏览(92)

我尝试使用方法重载来求矩形的面积。唯一的问题是值必须由用户输入。但是如果它必须从用户那里接受,我们不应该知道他输入的数据类型吗?如果我们知道了,那么重载的目的就没有意义了,因为我已经知道了数据类型。
你们能帮帮我吗?
您可以在此代码上添加:

import java.io.*;
import java.lang.*;
import java.util.*;

class mtdovrld
{
   void rect(int a,int b)
   {
      int result = a*b;
      System.out.println(result);
   }

   void rect(double a,double b)
   {
      double result = a*b;
      System.out.println(result);
   }
}

class rectarea
{
   public static void main(String[] args)throws IOException
   {
      mtdovrld zo = new mtdovrld();

      Scanner input= new Scanner(System.in);

      System.out.println("Please enter values:");

      // Here is the problem, how can I accept values from user where I do not have to specify datatype and will still be accepted by method?
      double a = input.nextDouble();
      double b = input.nextDouble();

      zo.rect(a,b);

   }
}
shyt4zoc

shyt4zoc1#

所以你要做的就是让它的输入是一个字符串。
所以用户可以输入9,或者9. 0,或者如果你想疯狂的话,可以输入9。
然后解析字符串并将其转换为int型或double型。然后调用其中一个重载方法。
http://www.java2s.com/Code/Java/Language-Basics/Convertstringtoint.htm
它向你展示了如何将一个字符串转换成一个整型

yuvru6vn

yuvru6vn2#

你可以重载不同类型的参数,例如String,或者一些对象。这是一个预防措施,以防程序员使用你的矩形方法传递了错误的参数类型,方法不会中断。

2nc8po8w

2nc8po8w3#

    • 最好在程序中处理输入的检查,而不是让用户为此烦恼**。

例如:
1. First let the user give values as String.

Scanner scan = new Scanner(System.in);
   String val_1 = scan.nextLine();
   String val_2 = scan.nextLine();

一米一米一x一米二米一x

    • 验证方法:**
public void chkAndSet(String str1, String str2)
    {

       try{

             rect(Integer.parseInt(str1), Integer.parseInt(str2));

          }
        catch(NumberFormatException ex)
          {

             rect(Double.parseDouble(str1), Double.parseDouble(str2));

          }
    }

相关问题