標籤:ges ++ 不同 boolean 個數 自動 and java rgs
1.方法重載
1)方法的簽名
- 方法的簽名包含方法名和參數列表
- 一個類中,不可以有兩個方法的簽名完全相同,即一個類中不能有兩個方法的方法名和參數列表都一樣。
public class Test{ public void print(int x){...}; public void print(int x){...}; //編譯錯誤,方法簽名不能一樣}public class Test{ public void print(int x){...}; public boolean print(int x){...}; //編譯正確 }
2)方法的重載
在Java語言中,允許多個方法的名稱相同,但參數列表不同,稱之為方法的重載(overload)。
- 發生在一個類中,方法名相同,參數列表不同
- 編譯器在編譯時間自動根據方法的簽名綁定調用的方法
public class Sum {public static void main(String[] args) {int x = sum(5,6);double y = sum(5.0,6.0);System.out.println(x);System.out.println(y);}public static int sum(int x,int y){return x+y;}public static double sum(double x,double y){ //方法重載return x+y;}}/*運行結果:1111.0*/
3)構造方法
構造方法是在類中定義的方法,構造方法常用於實現對象成員變數的初始化,不同於其他的方法,構造方法定義有如下兩點規則。
- 構造方法的名稱必須與類同名
- 構造方法沒有傳回值,但也不能寫void
文法:
[存取修飾詞] 類名(){
構造方法體;
}
3.1)this關鍵字的使用
this關鍵字用在方法體中,用於指向調用該方法的當前對象,簡單來說:哪個對象調用方法,this指的就是哪個對象,只能用在方法中,方法中訪問成員變數之前預設有個this. 。
public void drop(){ this.row ++; //將調用該方法對象的成員變數row+1,這樣書寫概念更佳清晰}//為了方便起見,在沒有歧義的情況下可以省略this:public void drop(){ row ++;}
在構造方法中,用來初始化成員變數的參數一般和成員變數取相同的名字,這樣會利於代碼的可讀性,但此時不能省略this關鍵字,是用來區分成員變數和參數。
public Cell(int row,int col){ this.row = row; //將參數列表中的row賦值給類中的成員變數cow this.col = col;}
3.2)預設的構造方法
- 任何一個類都必須含有構造方法
- 如果來源程式中沒有定義,編譯器在編譯時間將為其添加一個無參的空構造方法,即為預設的構造方法
- 當定義了構造方法後,Java編譯器將不再添加預設的構造方法了
class Sum{ int x,y; Sum(int x,int y){ this.x = x; this.y = y; }}public class Test{ public static void main(String[] args){ Sum s = new Sum(); //編譯錯誤,當定義了構造方法Sum(int x,inty){..}之後,編譯器不再提供預設的構造方法了 }}
3.3)構造方法的重載
為了使用方便,可以對一個類定義多個構造方法,這些構造方法都有相同的名稱(類名),方法的參數不同,稱之為構造方法的重載。一個構造方法可以通過this關鍵字調用另外的一個重載構造方法。
class Sum{ int x,y; Sum(){ this.x = 0; this.y = 0; } Sum(int x){ this.x = x; this.y = x; } Sum(int x,int y){ this.x = x; thix.y = y; }}//以上構造方法重載可以通過this.調用構造方法來進行重載,如下所示class Sum{ int x,y; Sum(int x,int y){ this.x = x; this.y = y; } Sum(int x){ this(x,x); } Sum(){ this(0,0); }}
2.參考型別數組
1)數組是對象
- 在Java中,數組屬於引用資料類型
- 數組對象在堆中儲存,陣列變數屬於參考型別,儲存數組對象的地址資訊,指向數組對象
- 數組的元素可以看成數組對象的成員變數(只不過類型全部相同)
2)參考型別數組的聲明
3)參考型別數組的初始化
- 參考型別數組的預設初始值都是null
- 如果希望每一個元素都指向具體的對象,需要針對每一個數組元素進行“new”運算。
//1.先聲明再賦值Emp[] e = new Emp[3];e[0] = new Emp("Tom",26);e[1] = new Emp("Jerry",28);e[2] = new Emp("Andy",30);//2.聲明的同時賦值Emp[] e = new Emp[]{ new Emp("Tom",26), new Emp("Jerry",28), new Emp("Adny",30) };
4)數組的類型是基本類型數組
int[][] arr = new int[3][]; //arr指向一個數組,該數組有三個元素,每個元素都是int類型數組,長度分別是2,1,3。arr[0] = new int[2];arr[1] = new int[1];arr[2] = new int[3];arr[0][0] = 1;arr[0][1] = 2;arr[1][0] = 3;arr[2][0] = 4;arr[2][1] = 5;arr[2][2] = 6;arr[2][3] = 7;
Java 方法重載與引用數群組類型