测试用例:所用java类: StdOut,StdIn , Counter, StdRandom,
public class Flips { public static void main(String[] args) { int T = Integer.parseInt(args[0]);
Counter heads = new Counter("heads");
Counter tails = new Counter("tails"); for (int t = 0; t < T; t++)
if(StdRandom.bernoulli(0.5))
heads.increment();
else tails.increment();
StdOut.println(heads);
StdOut.println(tails);
int d = heads.tally() - tails.tally();
StdOut.println("delta : " + Math.abs(d));
}
}
打印结果:public class Counter implements Comparable<Counter> { private final String name; // counter name
private int count = 0; // current value /**
* Initializes a new counter starting at 0, with the given id.
* @param id the name of the counter
*/
public Counter(String id) {
name = id;
} /**
* Increments the counter by 1.
*/
public void increment() {
count++;
} /**
* Returns the current count.
*/
public int tally() {
return count;
} /**
* Returns a string representation of this counter
*/
public String toString() {
return count + " " + name;
} /**
* Compares this counter to that counter.
*/
public int compareTo(Counter that) {
if (this.count < that.count) return -1;
else if (this.count > that.count) return +1;
else return 0;
}
}
public class Flips { public static void main(String[] args) { Counter c1 = new Counter("ones");
c1.increment();
Counter c2 = c1;
c2.increment();
StdOut.println(c1);
}
}
//赋值语句的区别: 复制的是引用类型还是原始数据类型。
打印结果:
2 ones