Java基礎:第二十九講 成員方法

來源:互聯網
上載者:User

類的成員方法用於對成員變數進行操作,可以分為3類:構造方法,用於對成員變數進行初始化;訪問器方法,對成員變數賦值或者用於擷取成員變數的值;業務方法,完成特定的功能。

1、構造方法

構造方法用於對成員變數進行初始化,構造方法的特點如下:

方法名與類名相同;

方法沒有傳回值類型。

例如:

public class Person{

   private int height;

   private Date birthday;

   private String name;

   public Person(){

   }

}

類的構造方法可以有多個,稱為構造方法的重載。不同的構造方法採用不同的方式對成員變數進行初始化,下面提供了Person類的3個構造方法:

   public Person(){

   }

   public Person(String name){

      this.name = name;

   }

  public Person(String name,int height){

      this.name = name;

      this.height = height;

   }

在構造方法中可以調用其它的構造方法,這樣可以減少重複的代碼,要調用構造方法可以使用this(參數列表),上面的第3個構造方法可以寫成:

    public Person(String name, int height) {

        this(name);

        this.height = height;

    }

注意:調用其它構造方法的代碼必須放在構造方法的第一行,下面的代碼就是錯誤的:

    public Person(String name, int height) {

        this.height = height;

        this(name);  // 這是錯誤的,必須放在第一行

    }

this關鍵字的用法後面介紹。

2、訪問器方法

通常成員變數都是私人的,為了供外界訪問,必須提供公有的方法,包括擷取屬性值的方法get方法,和對屬性賦值的方法set方法。例如對於上面的height屬性,應該提供如下兩個方法:

 public int getHeight() {
  return height;
 }

 public void setHeight(int height) {
  this.height = height;
 }

 set方法的命名規則為set加上屬性的名字,屬性名稱字首字母換成大寫的,例如:屬性birthday,應該提供setBirthday方法,通常情況下,set方法的傳回值通常是void,方法的參數類型與操作的屬性的類型一致;

get方法的命名規則為get加上屬性的名字,屬性名稱字首字母換成大寫的,例如:屬性birthday,應該提供getBirthday方法,通常情況下,get方法的傳回值類型與要訪問的屬性的類型一致,不需要參數,所以方法的參數列表為空白;

對於布爾類型的屬性值,擷取屬性值的方法有時候可以寫成is+屬性的方法,例如某個屬性工作表示是否開啟,方法名可以寫成isOpen,方法的定義可以寫成:

public boolean isOpen(){

   retrun open;

}

對於數群組類型(關於數組的內容,請參考Java基礎:第十四講 數組)的屬性,可以擷取整個數組的值,也可以擷取數組中某個元素的值,可以設定整個數組的值,也可以設定數組中某個元素的值,所以應該提供4個方法,例如屬性int[] a,應該提供如下方法:

 public int[] getA() {
  return a;
 }

 public void setA(int[] a) {
  this.a = a;
 }
 
 public void setA(int value,int index){
  a[index] = value;
 }
 
 public int getA(int index){
  return a[index];
 }

前兩個方法對整個數組進行操作,而後兩個方法對數組中的某個單元進行操作。

3、業務方法

業務方法用於描述對象具有的功能,業務方法的定義和編寫可以參考前面介紹的方法定義(Java基礎:第十五講 方法使用

上一講介紹了成員變數,本次內容介紹了成員方法,結下來介紹,如果使用類建立對象並調用對象的方法。

上一次: 第二十八講 成員變數下一次: 第三十講 對象的建立和訪問李緒成 CSDN Blog:http://blog.csdn.net/javaeeteacher邀請您為好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.