//计算Plane的时间:"java ComputeTime Plane 20 30 40" 
//计算Car007的时间:"java ComputeTime Car007 23 34 45" 
//如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:"java ComputeTime Ship 22 33 44" 
import pkg1.pkg2.*;
import java.lang.*;
public class ComputerTime{
public static void main(String args[]){
System.out.println("交通工具:"+args[0]);
System.out.pirntln("參數A:"+args[1]);
System.out.println("參數B:"+args[2]);
System.out.println("參數C:"+args[3]);
double A=Double.parseDouble(args[1]);
double B=Double.parseDouble(args[2]);
double C=Double.parseDouble(args[3]);
double v,t;
try{ Common d=(Common) Class.forName("pkg1."+args[0]).newInstatnce();
     v=d.runtime(A,B,C);
     t=1000/v;
     System.out.println("平均速度:"+v+"km/h");
     System.out.pirntln("運行時間:"+t+"小時");
}
catch(Exception e){
System.out.println("class not found");
}
}
}
package pkg1;
import pkg1.pkg2.*;
public class Car007 implements Common{
public double runtimer(double A,double B,double c)
{
 System.out.println("runtime="+(A*B/C));
 return A*B/C;
}
}package pkg1;
package pkg1.pkg2.*;
public class Plane implements Common{
public double runtimer(double A,double B,double C){
return A+B+C;
}

}
package pkg1.pkg2;
public interface Common{
double runtimer(double A,double B,double c);
}
 疑問:編譯出好多錯誤
package pkg1怎麼找不到?。
try{ Common d=(Common) Class.forName("pkg1."+args[0]).newInstatnce();
     v=d.runtime(A,B,C);
     t=1000/v;
這一句中的Common是什麼意思?
Common d=(Common) Class.forName("pkg1."+args[0]).newInstatnce();是什麼意思???
 這個小程序怎麼改才可以是正確運行的?多謝指點!!

解决方案 »

  1.   

    Common d=(Common) Class.forName("pkg1."+args[0]).newInstatnce();
    生成了一个Common对象。
    如果arg0=“Car”;
    则应该在pkg1里面有一个Car类。
    Common是Car的超类
      

  2.   

    路过看看
    ----------------------------
    http://www.soft51down.cn
      

  3.   


    //计算Plane的时间:"java ComputeTime Plane 20 30 40"
    //计算Car007的时间:"java ComputeTime Car007 23 34 45"
    //如果第3种交通工具为Ship,则只需要编写Ship.java,运行时输入:"java ComputeTime Ship 22 33 44"
    //import pkg1.*;
    //import pkg1.pkg2.*;
    import java.lang.*;
    public class ComputeTime
    {
    public static void main(String[] args)
    {
    System.out.println("交通工具:"+args[0]);
    System.out.println("參數A:"+args[1]);
    System.out.println("參數B:"+args[2]);
    System.out.println("參數C:"+args[3]);
    double A=Double.parseDouble(args[1]);
    double B=Double.parseDouble(args[2]);
    double C=Double.parseDouble(args[3]);
    double v,t;
    try

        pkg1.pkg2.Common d=(pkg1.pkg2.Common) Class.forName("pkg1."+args[0]).newInstance();
        v=d.runtime(A,B,C);
        t=1000/v;
        System.out.println("平均速度:"+v+"km/h");
        System.out.println("運行時間:"+t+"小時");
    }
    catch(Exception e)
    {
    System.out.println("class not found");
    }
    }
    }package pkg1.pkg2;
    public interface Common
    {
    double runtime(double A,double B,double c);
    } package pkg1;
    import pkg1.pkg2.*;
    public class Plane implements Common
    {
    public double runtime(double A,double B,double C)
    {
    return (A+B+C)/3;
    }

    }
    package pkg1;
    import pkg1.pkg2.*;
    public class Car007 implements Common
    {
    public double runtime(double A,double B,double C)
    {
    System.out.println("runtime="+(A*B/C));
    return A*B/C;
    }
      

  4.   

    上面的可以编译通过 但是我也不明白 这句:
    pkg1.pkg2.Common d=(pkg1.pkg2.Common) Class.forName("pkg1."+args[0]).newInstance();明明import pkg1.pkg2.*;  
      

  5.   

    package pkg1; import pkg1.pkg2.Common; public class Plane implements Common

    public double runtime(double A,double B,double C)

    return A+B+C;
    }
    }
    -------------------------------------------------------------------
    package pkg1;import pkg1.pkg2.Common;public class Car007 implements Common 
    {
    public double runtime(double A, double B, double C) 
    {
    System.out.println("runtime=" + (A * B / C));
    return A * B / C;
    }
    }
    ---------------------------------------------------------------------
    package pkg1.pkg2; public interface Common

    double runtime(double A,double B,double C); 

    -----------------------------------------------------------------------
    package pkg1.pkg2;public class ComputerTime 
    {
    public static void main(String args[]) 
    {
    System.out.println("交通工具:" + args[0]);
    System.out.println("參數A:" + args[1]);
    System.out.println("參數B:" + args[2]);
    System.out.println("參數C:" + args[3]);

    double A = Double.parseDouble(args[1]);
    double B = Double.parseDouble(args[2]);
    double C = Double.parseDouble(args[3]);
    double v, t;

    try 
    {
    Common d = (Common) Class.forName("pkg1." + args[0]).newInstance();
    v = d.runtime(A, B, C);
    t = 1000 / v;
    System.out.println("平均速度:" + v + "km/h");
    System.out.println("運行時間:" + t + "小時");

    catch (Exception e) 
    {
    System.out.println("class not found");
    }
    }
    }
    ------------------------------------------------------------------------------------------------Class.forName("pkg1."+args[0]).newInstance(); "pkg1."+args[0] = pkg1.类               得到这个包的类的一个新实例,如Plane,Car007