用Java写一个程序,将摄氏温度转化为华氏温度,华氏温度转化为摄氏温度。我写的如下,但不知道错误的原因。
abstract class TemperChange {
protected double C;
protected double F;
TemperChange(double C, double F) {
this.C = C;
this.F = F;
}
abstract double convert();
}
class CtoF extends TemperChange {
void CtoF(double C) {
this.C = C;
}
double convert(double F) {
F = C * (9 / 5) + 32;
System.out.println("从摄氏温度到华氏温度的转换");
System.out.println(
"*****************************************************");
System.out.println("摄氏温度为:" + C);
System.out.println("华氏温度为:" + F);
System.out.println();
}
}
class FtoC extends TemperChange {
void CtoF(double F) {
this.F = F;
}
double convert(double C) {
C = (F - 32) * (5 / 9);
System.out.println("从华氏温度到摄氏温度的转换");
System.out.println(
"*****************************************************");
System.out.println("华氏温度为:" + F);
System.out.println("摄氏温度为:" + C);
}
}
public class TextChange {
TextChange() {
}
public static void main(String[] args) {
CtoF change1 = new CtoF(98.6);
change1.convert();
FtoC change2 = new FtoC(100.0);
change2.convert();
}
}
參考答案:你这个是小问题?
构造 抽象 用的都有问题。最好用接口。
以下是 改进后的代码!
/*
* 创建日期 2006-10-1
*
* TODO *
*/
abstract class TextChange {
protected double C;
protected double F;
TextChange(double C, double F) {
this.C = C;
this.F = F;
}
TextChange() {
}
abstract double convert();
}
class CtoF extends TextChange {
CtoF(double C) {
this.C = C;
}
double convert() {
double F;
F = C * (9 / 5) + 32;
System.out.println("从摄氏温度到华氏温度的转换");
System.out
.println("*****************************************************");
System.out.println("摄氏温度为:" + C);
System.out.println("华氏温度为:" + F);
System.out.println();
return F;
}
}
class FtoC extends TextChange {
FtoC(double F) {
this.F = F;
}
double convert() {
double C;
C = (F - 32) * (5 / 9);
System.out.println("从华氏温度到摄氏温度的转换");
System.out
.println("*****************************************************");
System.out.println("华氏温度为:" + F);
System.out.println("摄氏温度为:" + C);
return C;
}
}
public class TextChange1 {
public static void main(String[] args) {
CtoF change1 = new CtoF(98.6);
change1.convert();
FtoC change2 = new FtoC(100.0);
change2.convert();
}
}