做个笔记,弄清楚count++ 与 ++count的区别。其中count为static所修饰。
附上测试代码:
public class TestJiaJia{ public static void main(String[] args){ Counter a = new Counter(); System.out.println(a.increment()); // 0 System.out.println(a.anotherIncrement()); // 2 Counter b = new Counter(); System.out.println(b.increment()); // 2 System.out.println(b.anotherIncrement()); // 4 }}class Counter{ private static int count = 0; // 注意count为静态变量。 public int increment(){ return count++; //先返回在自增。 } public int anotherIncrement(){ return ++count; //先自增在返回。 }}
count是静态变量,为所有对象所共享,因此不管a.increment()还是b.increment()都会使count持续增加。
increment()方法即count++返回当前count值,然后count增加1。
antoherIncrement()方法即**++count让count增加1,然后返回count值**
第一次a.increment()返回值为0,此时count值为1。
第二次a.anotherIncrement()先让count+1再返回,返回值为2。
第三次b.increment()先返回count当前值2,然后count+1。
第四次b.anotherIncrement()先让count+1再返回,返回值为4。
注意:
count++ : 先返回值再自增。++count : 先自增再返回值。