最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)教程之對象的方法與數(shù)據(jù)成員

 更新時間:2014年08月31日 16:03:51   投稿:junjie  
這篇文章主要介紹了Java基礎(chǔ)教程之對象的方法與數(shù)據(jù)成員,本文講解對象的方法與數(shù)據(jù)成員相關(guān)知識,因為java是面向?qū)ο笳Z言,本文的知識都是經(jīng)常要用到的,需要的朋友可以參考下

Java基礎(chǔ)教程之從Hello World到面向?qū)ο?/a>一文中,我們初步了解了對象(object)。對象中的數(shù)據(jù)成員表示對象的狀態(tài)。對象可以執(zhí)行方法,表示特定的動作。

此外,我們還了解了類(class)。同一類的對象屬于相同的類型(type)。我們可以定義類,并使用該定義來產(chǎn)生對象。

我們進一步深入到對象。了解Java中方法與數(shù)據(jù)成員的一些細(xì)節(jié)。

調(diào)用同一對象的數(shù)據(jù)成員

方法可以調(diào)用該對象的數(shù)據(jù)成員。比如下面我們給Human類增加一個getHeight()的方法。該方法返回height數(shù)據(jù)成員的值:

復(fù)制代碼 代碼如下:

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        System.out.println(aPerson.getHeight());
    }

}

class Human
{/**
     * accessor
     */
    int getHeight()
    {
        return this.height;
    }

    int height;
}

我們新增了getHeight方法。這個方法有一個int類型的返回值。Java中使用return來返回值。

注意this,它用來指代對象自身。當(dāng)我們創(chuàng)建一個aPerson實例時,this就代表了aPerson這個對象。this.height指aPerson的height。

this是隱性參數(shù)(implicit argument)。方法調(diào)用的時候,盡管方法的參數(shù)列表并沒有this,Java都會“默默”的將this參數(shù)傳遞給方法。

(有一些特殊的方法不會隱性傳遞this,我們會在以后見到)

this并不是必需的,上述方法可以寫成:

復(fù)制代碼 代碼如下:

/**
     * accessor
     */
    int getHeight()
    {
        return height;
    }

Java會自己去判斷height是類中的數(shù)據(jù)成員。但使用this會更加清晰。

我們還看到了/** comments  */的添加注釋的方法。

方法的參數(shù)列表

Java中的方法定義與C語言中的函數(shù)類似。Java的方法也可以接收參數(shù)列表(argument list),放在方法名后面的括號中。下面我們定義一個growHeight()的方法,該方法的功能是讓人的height增高:

復(fù)制代碼 代碼如下:

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        System.out.println(aPerson.getHeight());
        aPerson.growHeight(10);
        System.out.println(aPerson.getHeight());
    }

}

class Human
{
/**
     * accessor
     */
    int getHeight()
    {
        return this.height;
    }

    /**
     * pass argument
     */
    void growHeight(int h)
    {
        this.height = this.height + h;
    }

    int height;
}

在growHeight()中,h為傳遞的參數(shù)。在類定義中,說明了參數(shù)的類型(int)。在具體的方法內(nèi)部,我們可以使用該參數(shù)。該參數(shù)只在該方法范圍,即growHeight()內(nèi)有效。

在調(diào)用的時候,我們將10傳遞給growHeight()。aPerson的高度增加了10。

調(diào)用同一對象的其他方法

在方法內(nèi)部,可以調(diào)用同一對象的其他方法。在調(diào)用的時候,使用this.method()的形式。我們還記得,this指代的是該對象。所以this.method()指代了該對象自身的method()方法。

比如下面的repeatBreath()函數(shù):

復(fù)制代碼 代碼如下:

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        aPerson.repeatBreath(10);
    }

}

class Human
{
    void breath()
    {
        System.out.println("hu...hu...");
    }


   /**
    * call breath()
    */
    void repeatBreath(int rep)
    {
        int i;
        for(i = 0; i < rep; i++) {
            this.breath();
        }
    }
    int height;
}

為了便于循環(huán),在repeatBreath()方法中,我們聲明了一個int類型的對象i。i的作用域限定在repeatBreath()方法范圍內(nèi)部。

(這與C語言函數(shù)中的自動變量類似)

數(shù)據(jù)成員初始化

在Java中,數(shù)據(jù)成員有多種初始化(initialize)的方式。比如上面的getHeight()的例子中,盡管我們從來沒有提供height的值,但Java為我們挑選了一個默認(rèn)初始值0。

基本類型的數(shù)據(jù)成員的默認(rèn)初始值:

1.數(shù)值型: 0
2.布爾值: false
3.其他類型: null

我們可以在聲明數(shù)據(jù)成員同時,提供數(shù)據(jù)成員的初始值。這叫做顯式初始化(explicit initialization)。顯示初始化的數(shù)值要硬性的寫在程序中:

復(fù)制代碼 代碼如下:

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        System.out.println(aPerson.getHeight());
    }

}

class Human
{/**
     * accessor
     */
    int getHeight()
    {
        return this.height;
    }

    int height = 175;
}

這里,數(shù)據(jù)成員height的初始值為175,而不是默認(rèn)的0了。

Java中還有其它初始化對象的方式,我將在以后介紹。

總結(jié)

return

this, this.field, this.method()

默認(rèn)初始值,顯式初始化

相關(guān)文章

  • Java?JDBC使用入門講解

    Java?JDBC使用入門講解

    JDBC是指Java數(shù)據(jù)庫連接,是一種標(biāo)準(zhǔn)Java應(yīng)用編程接口(?JAVA?API),用來連接?Java?編程語言和廣泛的數(shù)據(jù)庫。從根本上來說,JDBC?是一種規(guī)范,它提供了一套完整的接口,允許便攜式訪問到底層數(shù)據(jù)庫,本篇文章我們來了解MySQL連接JDBC的流程方法
    2022-12-12
  • 解決springboot application.yml變灰色的問題

    解決springboot application.yml變灰色的問題

    這篇文章主要介紹了解決springboot application.yml變灰色的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • MyBatisPlus條件構(gòu)造器圖文實例詳解

    MyBatisPlus條件構(gòu)造器圖文實例詳解

    這篇文章主要介紹了MyBatisPlus條件構(gòu)造器,了解內(nèi)部原理是為了幫助我們做擴展,同時也是驗證了一個人的學(xué)習(xí)能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的
    2023-01-01
  • Spring boot項目使用thymeleaf模板過程詳解

    Spring boot項目使用thymeleaf模板過程詳解

    這篇文章主要介紹了Spring boot項目使用thymeleaf模板過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • java多線程加鎖以及Condition類的使用實例解析

    java多線程加鎖以及Condition類的使用實例解析

    這篇文章主要介紹了java多線程加鎖以及Condition類的使用實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Spring實現(xiàn)聲明式事務(wù)的方法詳解

    Spring實現(xiàn)聲明式事務(wù)的方法詳解

    這篇文章主要介紹了Spring實現(xiàn)聲明式事務(wù)的方法詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java面試題沖刺第七天--Spring框架1

    Java面試題沖刺第七天--Spring框架1

    這篇文章主要為大家分享了最有價值的三道Spring框架面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下
    2021-07-07
  • SpringBoot2.1.4中的錯誤處理機制

    SpringBoot2.1.4中的錯誤處理機制

    這篇文章主要介紹了SpringBoot2.1.4中的錯誤處理機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 深入理解Spring中bean的生命周期介紹

    深入理解Spring中bean的生命周期介紹

    本篇文章主要介紹了深入理解Spring中bean的生命周期介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 使用spring boot 整合kafka,延遲啟動消費者

    使用spring boot 整合kafka,延遲啟動消費者

    這篇文章主要介紹了使用spring boot 整合kafka,延遲啟動消費者的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論

福安市| 克东县| 沙坪坝区| 册亨县| 泸溪县| 乌鲁木齐市| 黔西| 越西县| 三门县| 洪江市| 措勤县| 淮滨县| 罗平县| 高陵县| 达拉特旗| 阜宁县| 和平县| 高要市| 棋牌| 顺义区| 玉田县| 余庆县| 临颍县| 克东县| 曲麻莱县| 离岛区| 德兴市| 施秉县| 镇江市| 习水县| 锡林浩特市| 饶河县| 县级市| 清涧县| 阳谷县| 尤溪县| 赞皇县| 鹰潭市| 泽州县| 武汉市| 化德县|