Java 方法重載與引用數群組類型

來源:互聯網
上載者:User

標籤: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 方法重載與引用數群組類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.