题目是:
    编写一个程序,用于根据用户输入的命令行参数数量来计算长方形或正方形的面积.如果输入一个参数,则应显示正方形的面积;如果输入两个命令行参数,则应显示长方形面积;如果没有输入参数,则应显示相应的错误消息,要求通过异常处理方法解决.用于计算面积的方法是一个重载的方法.(题目要求传参数)
我的源码是(这是有错误的源码,请大家帮我解决一下):
abstract class MyAreaDemo
{
abstract void area();
}class MyRectangle extends MyArea
{
void area(int rh,int rw)
{
System.out.println(rh*rw);
}
}class MySquare extends MyArea
{
void area(int sb)
{
System.out.println(sb*sb);
}
}class MyArea
{
public static void main(String args[])
{
try
{
int arrSize=args.length;
int num1;
int num2;
num1=Integer.parseInt(args[0]);
num2=Integer.parseInt(args[1]);

if(arrSize==2)
{
MyRectangle objR=new MyRectangle();
objR.area(num1,num2);
}


if(arrSize==1)
{
MySquare objS=new MySquare();
objS.area(num1);
}
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("没有输入参数");
}
}
}

解决方案 »

  1.   

    try
    {
      if (args.length != 2)
      {
         System.err.println("Usage:java MyArea param1 param2");
         throw new ArrayIndexOutOfBoundsException();
      }
      ...  ...
      

  2.   

    num1=Integer.parseInt(args[0]);
    num2=Integer.parseInt(args[1]);
    即使你的ars有办法传进来
    如果你的args只有一个,这段程序不是错了?
    if(arrSize == 2){
       num1=Integer.parseInt(args[0]);
       num2=Integer.parseInt(args[1]);
    }
    else
       num1=Integer.parseInt(args[0]);
      

  3.   

    num1=Integer.parseInt(args[0]);
    num2=Integer.parseInt(args[1]);
    即使你的ars有办法传进来
    如果你的args只有一个,这段程序不是错了?