停止并重新启动秒表

问题描述:

这比较了使用Math.sqrt和Newton's Method找到平方根所需的时间。我应该为此添加方法,允许客户端停止并重新启动秒表,但我不知道如何执行此操作。不幸的是,搜寻其他问题并没有带来好运。因为这是一堂课,我不想直接给我答案,但是一些建议,或者关于如何完成我的目标的教程的链接将会很好。谢谢你的帮助。停止并重新启动秒表

public class Stopwatch 
    { 
private final long start; 

public Stopwatch() 
{ start = System.currentTimeMillis(); } 

public double elapsedTime() 
{ 
    long now = System.currentTimeMillis(); 
    return (now - start)/1000.0; 
} 

public static void main(String[] args) 
{ 
    int N = Integer.parseInt(args[0]); 

    double totalMath = 0.0; 
    Stopwatch swMath = new Stopwatch(); 
    for (int i = 0; i < N; i++) 
     totalMath += Math.sqrt(i); 
    double timeMath = swMath.elapsedTime(); 

    double totalNewton = 0.0; 
    Stopwatch swNewton = new Stopwatch(); 
    for (int i = 0; i < N; i++) 
     totalNewton += Newton.sqrt(i); 
    double timeNewton = swNewton.elapsedTime(); 

    System.out.println(totalNewton/totalMath); 
    System.out.println(timeNewton/timeMath); 
} 

} 
+0

你不必创建你所在的同一个类的实例,你可以像'methodName();'一样直接调用这些方法,即使你想调用它们,我认为一个实例也可以。 – Smit 2013-03-26 21:57:42

创建一个名为long类型的timeElapsedUntilLastStop另一个属性。

创建一个名为stop的方法,它执行elapsedTime的确切操作,但不会返回当前值timeElapsedUntilLastStop

restart()方法应该初始化应该足够的启动变量。

这是很好,你是诚实的这是一个班,你不想给你的答案。这是一个良好的开端学习:)

这是我会怎么对待这项任务:

首先,我只是定义缺失的方法。然后,我会开始撰写(作为内嵌评论)这些方法应该做什么。重置秒表的意义是什么,停止它意味着什么?你可以画一个“真实生活”的秒表。这应该让你开始思考,一旦你定义了规则,应该可以将其转换成代码。

也许这比你想象的要抽象一些,但我相信你会以正确的态度到达那里,就像你看上去一样!祝你好运!