public class Counter{ int num1; int num2; public Counter( int num1, int num2 ){ this.num1 = num1; this.num2 = num2; } public Counter(){ } public void plus(){ int result = num1 + num2; System.out.println(result); } public void plus( int num1, int num2){ int result = num1 + num2; System.out.println(result); } } public class TestCounter{ public static void main(String[] args) { Counter test1 = new Counter(5, 6); test1.plus(); test1.plus(10,8); System.out.println(test1.num1); Counter test2 = new Counter(); test2.plus(); test2.plus(19, 58); System.out.println(test2.num1); } }
代碼如上所示java
1 首先分析,須要解決的問題是 實現對兩位數的四種運算,兩位數爲數值,能夠用屬性變量來表達;運算爲操做,爲進程,能夠用方法(函數)來進行;函數
所以在類中首先須要對兩個屬性進行初始化;int num1; int num2;學習
2 進而須要對四種運算分別表達成四種方法,即public void plus(){表達式} public void sub(){表達式}......this
在java中,在定義方法的時候須要考慮的是(1)方法有無返回值;(2)方法是否有入參,及入參的屬性(參數的類型,數量,順序);spa
更進一步的考慮是按照要求來決定是否賦予新建對象的兩個屬性初值,這就用到了構造方法(構造函數)code
實現對兩個變量進行四種方法運算,在學習中,爲了簡便,咱們對定義的對象賦予初值(經過構造方法進行實現)。對象
3 四種運算具體化爲四種方法的時候,咱們採用了非靜態無參方法與非靜態有參方法進行實現;進程
非靜態無參方法很簡單,在建立對象的時候就給對象的兩個屬性變量賦予了初值(經過構造方法)。class
非靜態有參方法則是:對於給定的兩個參數,進行方法進程。(注意,此時傳遞的是值,並非對象的屬性變量,由於方法是非靜態的,因此在這裏,構造的對象的做用僅僅是起到了提供方法入口的做用,沒法經過參數對屬性變量進行修改) test
4 對於下面使用this關鍵字的代碼
public Counter( int num1, int num2 ){ this.num1 = num1; this.num2 = num2; }
括號中的num1與num2僅表示入參不表明類中的屬性,只是爲了閱讀的方便與習慣,this表示「當前對象」,這一經常使用句式通常用來利用構造函數在建立對象時對對象進行賦值。