当前位置: 代码迷 >> Java相关 >> 刚学JAVA的菜鸟,作业出错找不到错误在哪!!
  详细解决方案

刚学JAVA的菜鸟,作业出错找不到错误在哪!!

热度:263   发布时间:2006-11-25 00:46:00.0
刚学JAVA的菜鸟,作业出错找不到错误在哪!!

/**编写一个java程序,用于将摄氏温度转换为华氏温度反之亦然.使用继承定义一个父类
*其中包含convert()的抽象方法.定义两个子类用于重写convert()方法,一个子类将提供
*从摄氏到华氏转换的实现,另一个子类将提供从华氏到摄氏的转换实现,再编写一个测试
*类将华氏100度转换为摄氏温度,并将摄氏温度98.6转换为华氏温度,声明final变量以存储
*常量值32
*/
abstract class temperature{
double C;
double F;
final int X=32;
temperature(double C,double F){
this.C=C;
this.F=F;
}
abstract void convert();
}

class CConvertF extends temperature{
CConvertF(double C){
super(C);
}
public double convert(){
return F=(C-X)*5/9;
}
void Display(){
System.out.println("摄氏温度为"+C);
System.out.println("华氏温度为"+convert());

}
}
class FConvertC extends temperature{
FConvertC(double F){
super(F);
}
public double convert(){
return C=F*9/5+X;
}
void Display(){
System.out.println("华氏温度为"+F);
System.out.println("摄氏温度为"+convert());

}
}

public class ConversionTest{
public static void main(String[] args){
CConvertF convertF=new CConvertF(100.0);
System.out.println("从华氏温度到摄氏温度的转换");
System.out.println("-------------------------------------------------");
convertF.Display();
FConvertC convertC=new FConvertC(98.6);
System.out.println("从摄氏温度到华氏温度的转换");
System.out.println("-------------------------------------------------");
convertC.Display();
}
}

望高手指出错误后说明下为什么不能这么写,刚学面向对象,感觉很搞~~谢谢了!!!

搜索更多相关的解决方案: JAVA  作业  

----------------解决方案--------------------------------------------------------
你的程序真的很乱,要重写convert()的话,下面的也应该一样的啊,你前面为void而后面却成了double了,一个没有返回值,一个却有,还有
public double convert(){
return F=(C-X)*5/9;
}
这个又是什么啊,没有参数传进去,怎么执行return F=(C-X)*5/9;这个语句啊楼主要细心一点哦


----------------解决方案--------------------------------------------------------

package com.digitalchina.power.billing;
abstract class Temperature{
double C;
double F;
final int X=32;
public Temperature(double F,double C){
this.C=C;
this.F=F;
}
abstract double convert();
}

class CConvertF extends Temperature{
CConvertF(double F,double C){
super(F,C);
}

public double convert(){
return C=(F-X)*5/9;
}
void Display(){
System.out.println("华氏温度为"+F);
System.out.println("摄氏温度为"+convert());

}
}

class FConvertC extends Temperature{
FConvertC(double F,double C){
super(F,C);
}
public double convert(){
return F=(C*9/5+X);
}
void Display(){
System.out.println("摄氏温度为"+C);
System.out.println("华氏温度为"+convert());

}
}

public class ConversionTest{
public static void main(String[] args){
CConvertF convertF=new CConvertF(100.0,0.0);
System.out.println("从华氏温度到摄氏温度的转换");
System.out.println("-------------------------------------------------");
convertF.Display();
System.out.println("");
System.out.println("");
FConvertC convertC=new FConvertC(0.0,98.6);
System.out.println("从摄氏温度到华氏温度的转换");
System.out.println("-------------------------------------------------");
convertC.Display();
}
}

给楼主改了一下,对照一下就知道问题所在了。
PS:对于继承来讲,首先构造函数的模式应该是一致的,其次。。。。都在代码里了~


----------------解决方案--------------------------------------------------------
小弟因为刚学三天JAVA所以实在很不熟悉,对抽象类和继承还非常陌生!!所以写得乱七八糟!!感谢各位的指点,谢谢了!!!
----------------解决方案--------------------------------------------------------

顶楼上的,为你加油了,呵呵~~


----------------解决方案--------------------------------------------------------
我也是一个新手,希望我们在大家在这里共同进步!
----------------解决方案--------------------------------------------------------

more study more good ,


----------------解决方案--------------------------------------------------------
  相关解决方案