首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

急请大神帮小弟我看一下,这里异常要如何改,千恩万谢!多谢~

2012-03-13 
急急急~~~~~请大神帮我看一下,这里错误要怎么改,千恩万谢!谢谢~~~~~public abstract class Area {public v

急急急~~~~~请大神帮我看一下,这里错误要怎么改,千恩万谢!谢谢~~~~~
public abstract class Area {
public void double area(){


}
  public class RoundArea extends Area{
double roundarea , width;
double area(double width){
roundarea=Math.PI*width*width;
return roundarea;
}
}
  public class RectArea extends Area{
double rectarea ,length, width;
double area(double length,double width){
rectarea=length*width;
return rectarea;
}
}
  public class ImpleArea{
double length,width;
double getx(){
System.out.println("length="+length);
System.out.println("length="+width);
return length;
return width;
}
}


public static void main(String[] args) {
// TODO Auto-generated method stub


RoundArea c=new RoundArea ();
c.area();
System.out.println("圆的面积是"+c);
RectArea a=new RectArea();
a.area();
System.out.println("长方形的面积是"+a);


}

}


[解决办法]
public void double area()我看不懂这句,返回值到底是void还是double呢
[解决办法]
想理解java里类的多态?
你定义了一个抽象类 叫做面积~~里面有个一个求面积的方法~~
接下里你开始定义了 圆类 还有 矩形类 ~~这里 圆应该有一个半径的变量 就是width
但是没看到你给这个属性赋值
也没看到什么构造方法~
那你这个面积怎么可能求的出来啊? 好比你定义了一个圆去不告诉他这个圆的半径是多少 让它求面积~~这咋求的出来啊!!!
矩形也是类似的~~~

public class ImpleArea{
double length,width;
double getx(){
System.out.println("length="+length);
System.out.println("length="+width);
return length;
return width;
}
}
还有你这个类 我就真不懂 你想干啥?
[解决办法]

Java code
    public class RoundArea extends Area{    double roundarea , width;    double area(double width){    roundarea=Math.PI*width*width;    return roundarea;       }}.......RoundArea c=new RoundArea ();c.area(1.0);//根据你在RoundArea定义的方法需要你传入一个double 类型的参数System.out.println("圆的面积是"+c); //这样就出来结果了//矩形类似的
[解决办法]
Area.java

public abstract class Area {
public double area(double x){

return Math.PI * x * x ;
}
public double area(double x, double y ){

return x * y ;
}
}

RoundArea.java

public class RoundArea extends Area{
//private double roundarea , width;
/**
public double area(double width){
roundarea=Math.PI*width*width;
return roundarea;
}
*/
}

RectArea.java

public class RectArea extends Area{
//private double rectarea ,length, width;

/**
public double area(double length,double width){
rectarea=length*width;
return rectarea;
}
*/
}


ImpleArea.java
public class ImpleArea{
private double length,width;

//保留默认构造函数
public ImpleArea(){
}
//定义一个构造函数 ,初始化私有变量
public ImpleArea(double length, double width){
this.length = length ;
this.width = width ;
}

public double getx(){
System.out.println("length="+length);
System.out.println("length="+width);

//到底是想返回 length 还是 width 还是 length * width ,看你的方法名定义getx()应该是返回 length 
return length;
//return width;
}
}


Test.java

public class Test{
public static void main(String[] args) {
// TODO Auto-generated method stub

Area c = new RoundArea() ;
double dc = c.area(10.1) ; // 你定义的area方法是有一个double参数的,调用的时候需要放入参数啊


System.out.println("圆的面积是" + dc);

Area a = new RectArea();
double da = a.area(5.1, 8.0) ; // 你定义的area方法是有一个double参数的,调用的时候需要放入参数啊
System.out.println("圆的面积是" + da);
/**
RoundArea c = new RoundArea ();
c.area();
System.out.println("长方形的面积是:"+c);
RectArea a=new RectArea();
a.area();
System.out.println("长方形的面积是"+a);

*/
}

}
[解决办法]

Java code
Area.java    public abstract class Area {        public  double area(double x){                    return Math.PI * x * x ;        }        public  double area(double x, double y ){                    return x * y ;        }    }RoundArea.java    public class RoundArea extends Area{            //private double roundarea , width;            /**            public double area(double width){                roundarea=Math.PI*width*width;                return roundarea;            }            */    }RectArea.java      public class RectArea extends Area{            //private double rectarea ,length, width;                        /**            public double area(double length,double width){                rectarea=length*width;                return rectarea;            }            */        }ImpleArea.java      public class ImpleArea{                private double length,width;                                //保留默认构造函数                public ImpleArea(){                }                //定义一个构造函数 ,初始化私有变量                public ImpleArea(double length, double width){                    this.length = length ;                    this.width  = width ;                }                                public double getx(){                    System.out.println("length="+length);                    System.out.println("length="+width);                                        //到底是想返回 length 还是 width 还是 length * width ,看你的方法名定义getx()应该是返回 length                     return length;                    //return width;                }        }Test.javapublic class Test{        public static void main(String[] args) {        // TODO Auto-generated method stub                    Area c = new RoundArea() ;            double dc = c.area(10.1) ; // 你定义的area方法是有一个double参数的,调用的时候需要放入参数啊            System.out.println("圆的面积是" + dc);                        Area a = new RectArea();            double da = a.area(5.1, 8.0) ; // 你定义的area方法是有2个double参数的,调用的时候需要放入参数啊            System.out.println("长方形的面积是" + da);        /**                RoundArea c = new RoundArea ();                c.area();                System.out.println("圆的面积是:"+c);                RectArea a=new RectArea();                a.area();                System.out.println("长方形的面积是"+a);                */                }}
[解决办法]
先说一下你这个类的问题:
1. 内部类错误使用,导致你声明中出现错误
RoundArea c = new RoundArea();
2. 抽象类中的定义抽象方法,不应该有方法体
public double area() {//方法体},
应该是public abstract double area();
2. 关于类中,方法声明中,void和返回值类型不能同时存在
public void double area()
3. 方法中不能顺序执行两个return语句
return length;
return width;

[解决办法]
把你的文件做了一下修改,参考一下:
Java code
public class AreaDemo {    public static void main(String[] args) {        /*         *  既然表达多态的效果         *  声明的时候,就用抽象类,赋值的时候使用实例对象         */        Area c = new RoundArea(11);         c.area();        System.out.println("圆的面积是" + c.area());        // 不能直接输出类,应该调用类下的方法//        System.out.println("圆的面积是" + c.area());        Area a = new RectArea(11, 12);        a.area();        System.out.println("长方形的面积是" + a.area());    }}// 定义抽象类abstract class Area {    // 抽象方法    public abstract double area();}class RoundArea extends Area {    double roundarea,           width;    // 采用构造函数的方式,传递数值    public RoundArea(double width) {        this.width = width;    }    public double area() {        roundarea = Math.PI * width * width;        return roundarea;    }//    public double area(double width) {//        roundarea = Math.PI * width * width;//        return roundarea;//    }}class RectArea extends Area {    double rectarea,            length,            width;    public RectArea(double length, double width) {        this.length = length;        this.width = width;    }    public double area() {        rectarea = length * width;        return rectarea;    }//    double area(double length, double width) {//        rectarea = length * width;//        return rectarea;//    }}// 不明确这个类的作用//public class ImpleArea {//    double length, width;////    void getx() {//        System.out.println("length=" + length);//        System.out.println("length=" + width);//    }//} 


[解决办法]
ImpleArea是做什么用的?仅仅是输出么?它没有体现出与Area的关系啊?

从键盘输入值,可以用
Scanner in = new Scanner(System.in);
然后里面会有int,float等等类型的读取。

热点排行