我想把shape接口,Circle类,Rectangle类定义在shapepackage包中,但用 javac -d . Rectangle.java 出现了问题,小弟刚学JAVA不久 请帮帮忙看看啊,谢谢拉
代码如下:
package shapepackage;
interface shap{
final float PI=3.1415926f;
public double area(double r);
public double area(double w,double h);
public double peri(double r);
public double peri(double w,double h);
public void showArea();
public void showPeri();
}
abstract class Circle implements shap{
public double area(double r){
return PI*r*r;
}
public double peri(double r){
return 2*PI*r;
} public void showArea(){
System.out.println("圆的面积为:"+area(double r));
} public void showPeri(){
System.out.println("圆的周长为: "+area(double r));
}
}
public abstract class Rectangle implements shap{
public double area(double w,double h){
return w*h;
}
public double peri(double w,double h){
return 2*(w+h);
}
public void showArea(){
System.out.println("矩形的面积为:"+area(double w,double h));
}
public void showPeri(){
System.out.println("矩形的周长为:"+peri(double w,double h));
}
}下面是我编译是出的错误:
D:\my java\第五章\build\classes>javac -d . Rectangle.java
Rectangle.java:20: 需要 ".class"
                System.out.println("圆的面积为:"+area(double r));
                                                        ^
Rectangle.java:20: 需要 ';'
                System.out.println("圆的面积为:"+area(double r));
                                                          ^
Rectangle.java:24: 需要 ".class"
                System.out.println("圆的周长为: "+area(double r));
                                                         ^
Rectangle.java:24: 需要 ';'
                System.out.println("圆的周长为: "+area(double r));
                                                           ^
Rectangle.java:35: 需要 ".class"
                System.out.println("矩形的面积为:"+area(double w,double h));
                                                         ^
Rectangle.java:35: 需要 ".class"
                System.out.println("矩形的面积为:"+area(double w,double h));
                                                                  ^
Rectangle.java:35: 需要 ';'
                System.out.println("矩形的面积为:"+area(double w,double h));
                                                                   ^
Rectangle.java:35: 非法的表达式开始
                System.out.println("矩形的面积为:"+area(double w,double h));
                                                                    ^
Rectangle.java:38: 需要 ".class"
                System.out.println("矩形的周长为:"+peri(double w,double h));
                                                         ^
Rectangle.java:38: 需要 ".class"
                System.out.println("矩形的周长为:"+peri(double w,double h));
                                                                  ^
Rectangle.java:38: 需要 ';'
                System.out.println("矩形的周长为:"+peri(double w,double h));
                                                                   ^
Rectangle.java:38: 非法的表达式开始
                System.out.println("矩形的周长为:"+peri(double w,double h));
                                                                    ^
12 错误D:\my java\第五章\build\classes>

解决方案 »

  1.   

    这方法代码写的不对啊,可以这样写:
    private double r;
    public void showArea(){
    System.out.println("圆的面积为:"+area(r));
    }
      

  2.   

    用eclipse吧,别整命令行了,这个很烦,你这个东西需要搞清楚先编译生成那个文件生成class然后再将class加入编译的classpath当中再编译下一个文件
    有语法错误还会编译失败
      

  3.   

    public void show(double d,int i){//定义方法}show(2.0,1);//调用方法,时只需根据方法参数列表填充参数值就行了,不要将定义和调用搞混了