2014-02-20 163 views
0

我以一個Java課程在大學的初學者,我很困惑,它是如何編譯/執行 以下代碼:理解簡單的計數器代碼

public class Counter { 
    private int counter; 
    private int end; 

    public Counter(int start, int end) { 
     this.counter = start; 
     this.end = end; 
    } 

    public String toString() { 
     return "[Counter counter=" + counter + " end=" + end + "]"; 
    } 

    public int getCounter() { 
     return counter; 
    } 

    public void count(int increment) { 
     if (counter < end) { 
      counter += increment; 
     } 
    } 

    public void count() { 
     count(1); 
    } 
} 

其他類

public class CounterProgram { 

    private Counter counter; 

    public void init() { 
     counter = new Counter(1, 3); 
    } 

    public void run() { 
     System.out.println(counter); 
     counter.count(); 
     System.out.println(counter); 
     counter.count(); 
     System.out.println(counter); 
     counter.count(); 
     System.out.println(counter); 
    } 

    public static void main(String[] args) { 
     CounterProgram counterProgram = new CounterProgram(); 
     counterProgram.init(); 
     counterProgram.run(); 
    } 
} 

我不知道什麼count(1)意味着在方法public void count任何人都可以解釋?感謝您的時間!

+0

它調用'公共無效計數(INT增量)'遞增。請閱讀[基礎教程](http://docs.oracle.com/javase/tutorial/)。 – Maroun

回答

4

count(1)是將count方法與參數1int)呼叫:

public void count(int increment) 
0

count(1)調用overloaded方法count(int increment),它通過遞增1的計數器值,如果計數器小於end

1

您的Counter類中有兩個count()方法,每個方法都有不同的參數。其中之一是通用的;它可以給內部counter變量的值添加一個給定的增量值。另一個是特定的,因爲它應該是1增加counter

因此,您的public void counter()方法可以通過調用它來使用更通用的public void counter (int increment),而不是重新實現自己的邏輯。

換句話說,您的counter()方法正在調用counter (int increment)以避免代碼重複,這是高質量代碼中非常重要的事情。

0

如果你是java新手,我建議考慮你的自編譯器。如果您使用NetBeans等IDE,或者可以在調試模式下運行。 對於這個代碼:

  1. 首先public static void main(String[] args)作爲每個節目從主方法運行。
  2. 其次建立在右側邊CounterProgram counterProgram = new CounterProgram();類的一個對象new CounterProgram();調用類的構造函數,因爲沒有定義裏面是空的
  3. init用來初始化計數值
  4. 第四run()現在run方法有,你可以做多個命令在頁面上演示。它僅與條件<end