【发布时间】:2017-10-01 18:35:57
【问题描述】:
任务是创建一个名为 Temp 的课程,该课程与他免费提供给我们的讲师 TestTemp 课程运行。到目前为止,一切似乎都测试得很好,除了我应该使用的 toString 中的输出。它应该像注释掉的部分一样格式化,但似乎不起作用。我提出了 TestTemp 类和我的 Temp 类代码。我觉得我错过了一些小东西,但只需要朝着正确的方向轻推,而且我的导师在作业到期之前没有办公时间。我还粘贴了他在作业中添加的作业说明。
该类将被称为 Temp
添加一个 compareTo 方法。 (如果调用对象具有较低的值,则返回 -1 temp,相同为0,较大为1)
添加一个静态计数器(对象 id)来跟踪有多少温度 对象已创建(1,2,3,...)
添加一个静态方法来告诉你有多少温度对象 创建的。
包括一个 toString 方法,该方法显示对象如下(假设 第三个创建):
对象 ID:3 F 中的温度:32.0 C 中的温度:0.0
请注意,调用 getF 或 getC 只返回值。他们不 更改本机数据。
要明确,唯一的方法如下:4个构造函数,getF, getC、setDegrees、setScale、equals、toString、compareTo 和一个静态 getTempCount 返回已被访问的对象总数 已创建。
请注意,getter 将返回所请求比例的度数 四舍五入到十分之一度。永远不要四舍五入原生数据。
请注意,如果温度为 以摄氏度比较时相同(四舍五入到十分之一 学位)。
一定要充分利用 this() 并且只有一个构造函数来做 任何真正的工作。
如果“不好”,请务必验证比例并遵循默认值 (C) 规模”发送在
无需验证学位和担心诸如此类的事情 绝对零等等。
注意:您的 Temp 类必须与 TestTemp 类一起正常工作 在 UNIT-04-CodeSamples 中提供
//32 - 212 180 ticks
//
//0-100 1/10
//
public class TestTemp
{
public static void main(String [] args)
{
// only one constructor does any real work
Temp temp1 = new Temp(); // 0 C
Temp temp2 = new Temp(32); // 32 C
Temp temp3 = new Temp('F'); // 0 F
Temp temp4 = new Temp(32, 'F'); // 32 F
Temp temp5 = new Temp(); // 0 C
temp5.setDegrees(10);
temp5.setScale('F'); // 10 F
System.out.println("C: " + temp1.getC() ); // C: 0.0
System.out.println("F: " + temp1.getF() ); // F: 32.0
System.out.println(temp1.equals(temp4)); // true
System.out.println(temp1.equals(temp2)); // false
System.out.println("You have " + Temp.getTempCount() ); // You have 5
if( temp3.compareTo(temp5)< 0 ) //temp3 is lower than than temp5
{
System.out.println("temp3 is lower than than temp5");
}
else
{
System.out.println("temp3 is same or larger than temp5");
}
System.out.println(temp1);
/*
TEMP OBJECT #1
IN C: 0.0
IN F: 32.0
*/
}
}
public class Temp implements Comparable<Temp>
{
private double degrees;
private char scale;
private static int tempCount = 0;
private int id;
public Temp()
{
this.degrees = 0;
this.scale = 'C';
// this(0.0, 'C');
}
public Temp(double degrees)
{
this.degrees = degrees;
this.scale = 'C';
// this(degrees, 'C');
}
public Temp(char scale)
{
this.degrees = 0;
this.scale = scale;
// this(0.0, scale);
}
public Temp(double degrees, char scale)
{
this.id = ++tempCount;
this.degrees = degrees;
this.scale = scale;
//(degrees, scale);
}
public static int getTempCount()
{
return tempCount;
}
public int getId()
{
return this.id;
}
public void setScale(char scale)
{
if(scale == 'C')
{
this.scale = scale;
}
else
{
this.scale = 'F';
}
}
public void setDegrees(double degrees)
{
this.degrees = degrees;
}
public double getC()
{
if(scale == 'C')
{
return degrees;
}
else
{
return (double)(5.0 * (degrees-32)/9.0);
}
}
public double getF()
{
if(scale == 'F')
{
return (double) degrees;
}
else
{
return (double)(9.0*(degrees)/5.0)+32;
}
}
@Override
public int compareTo(Temp obj)
{
if(this.getC() < obj.getC() )
{
return -1;
}
if(this.getC() > obj.getC() )
{
return 1;
}
return 0;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Temp))
{
return false;
}
Temp other = (Temp)obj;
return this.getC() == other.getC();
}
**public String toString()
{
return String.format("TEMP OBJECT ", this.id) + "\n" +
String.format("IN C: ", this.getC() ) + "\n" +
String.format("IN F: ", this.getF() );
}**
}
【问题讨论】:
-
阅读完所有这些后,我仍然不知道您的问题到底是什么。请创建一个 [最小、完整且可验证的示例] (stackoverflow.com/help/mcve) 并描述问题以及预期结果