【问题描述】
/*编写Temperature类,表示摄氏和华氏两种温度,具有两个属性:
double型浮点数表示温度值,
字符表示单位,C表示摄氏,F表示 华氏。
具有构造方法:可设置度的数值和计量单位。
具有四个普通方法:
getC()方法,返回对应的摄氏度,结果保留一位小数
getF()方法,返回对应的华氏度,结果保留一位小数
toString()方法,返回一个形如 "Temperature is 30.0F"的字符串。
compareTo()方法:参数是另一个Temperature对象,根据两个对象所表示的温度值大小的比较结果 ,返回一个字符串:等于返回“ equals to ”, 小于返回“ less than ” 大于返回“ greater than ”
在Test类中分别 对比0C和30F,-40C和-40F,98C和212F,并输出相应信息。
要求编程实现Temperature类,使给定的Test类能正常运行,并实现指定的输出内容。*/
public class Test{
static public void main(String args[]){
Temperature t1 = new Temperature(0,'C');
Temperature t2 = new Temperature(30,'F');
Temperature t3 = new Temperature(-40,'C');
Temperature t4 = new Temperature(-40,'F');
Temperature t5 = new Temperature(98,'C');
Temperature t6 = new Temperature(212,'F');
String comStr;
int comInt;
System.out.println("t1: "+t1.toString());
System.out.println("t2: "+t2.toString());
comStr = t1.compareTo(t2);
System.out.println("t1 is "+comStr+" t2");
System.out.println("-");
System.out.println("t3 in F is : "+t3.getF());
comStr = t3.compareTo(t4);
System.out.println("t3 is "+comStr+" t4");
System.out.println("-");
System.out.println("t6 in C is : "+t6.getC());
comStr = t5.compareTo(t6);
System.out.println("t5 is "+comStr+" t6");
}
}
【输入形式】
【输出形式】
t1: Temperature is 0.0C
t2: Temperature is 30.0F
t1 is greater than t2
-
t3 in F is : -40.0
t3 is equals to t4
-
t6 in C is : 100.0
t5 is less than t6
完整代码如下:
import java.util.*;
public class testc{
static public void main(String args[]){
Temperature t1 = new Temperature(0,'C');
Temperature t2 = new Temperature(30,'F');
Temperature t3 = new Temperature(-40,'C');
Temperature t4 = new Temperature(-40,'F');
Temperature t5 = new Temperature(98,'C');
Temperature t6 = new Temperature(212,'F');
String comStr;
System.out.println("t1: "+t1.toString());
System.out.println("t2: "+t2.toString());
comStr = t1.compareTo(t2);
System.out.println("t1 is "+comStr+" t2");
System.out.println("-");
System.out.println("t3 in F is : "+t3.getF());
comStr = t3.compareTo(t4);
System.out.println("t3 is "+comStr+" t4");
System.out.println("-");
System.out.println("t6 in C is : "+t6.getC());
comStr = t5.compareTo(t6);
System.out.println("t5 is "+comStr+" t6");
}
}
class Temperature{
private double num;
private char str;
public Temperature(double num,char str){
this.num=num;
this.str=str;
}
public double getF(){
//出现空类型还可能是因为普通方法创建时出错,
//应该将void修改为相应类型double
num=num*1.8+32;
str='F';
return num;
//return str;
}
public double getC(){
num=(num-32)/1.8;
str='C';
return num;
//return str;
}
public String toString(){
return "Temperature is "+this.num+this.str;
}
public String compareTo(Temperature AAA){
if(str==AAA.str){
if(num==AAA.num){
return " equals to ";
}
else if(num>AAA.num){
return " greater than ";
}
else{
return " less than ";
}
}
else if(str=='C'){
num=num*1.8+32;
if(num==AAA.num){
return " equals to ";
}
else if(num>AAA.num){
return " greater than ";
}
else{
return " less than ";
}
}
else{
num=(num-32)/1.8;
if(num==AAA.num){
return " equals to ";
}
else if(num>AAA.num){
return " greater than ";
}
else{
return " less than ";
}
}
}
}