Java新手,求帮忙改错(第一次来没积分,对不起哈,麻烦各位了)

刚看到“方法和类”,题目要求设计一个秒表类stopwatch,来记录排序一个数组所用的时间。但是不知道程序哪里出错了,只显示开始时间 startTime。endTime 和 流逝时间getElapseTime() 都不显示。

package demo;
import java.util.Scanner;
import java.util.Date;
import java.util.Arrays;
import java.util.Random;
public class Welcome {
public static void main(String[] args) {
int[] ary = new int[100];
for (int i = 0;i < 100;i++)
ary[i] = (int)(Math.random() * 100);

stopwatch watch = new stopwatch();
System.out.println(watch.getStart());

watch.Start();
System.out.println(watch.getStart());

for (int i = 0;;i++){
    int temp,count = 0;
    for (int j = 0;j + 1 < 100;j++){
        if (ary[j + 1] - ary[j] <= 0){
            count++;
            temp = ary[j];
            ary[j] = ary[j + 1];
            ary[j + 1] = temp;
            }
     }
   if (count == 0) {

    break;}
   }
 watch.End();  
    System.out.println(watch.getEnd());
    }

}

class stopwatch{
private static long startTime;
private static long endTime;

stopwatch(){
}

static long getStart(){
    return startTime;
}

 static long getEnd(){
    return endTime;
}

 static void Start(){
    startTime = System.currentTimeMillis();
}

 static void End(){
    endTime = System.currentTimeMillis() ;
}

 static long getElapseTime(){
    return endTime - startTime;
}

}

 结果显示:0
 (当前时间流逝)

最上面的for循环没括号吗

getElapseTime没看你调用,当然不显示。
既然你定义成static
stopwatch watch = new stopwatch(); 这里的new多此一举。
应该是 stopwatch.Start();
stopwatch.getStart()

 stopwatch watch = new stopwatch();
System.out.println(watch.getStart());

watch.Start();
System.out.println(watch.getStart());

第二个System.out 不打印???

看了一下,是这样的,运行的结果是0和一串长数字,然后程序由于你在第二个循环写了死循环,所以无限运行了,第一个0,是因为你还没给start赋值,
所以用会输出默认值0,你赋值之后,你又输出他了,就给你一串长数字,然后就到你写的死循环了,根本执行不到你后面的

你的第一层for循环没有写判断条件。死循环了。。。