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

解析java中This的用法分析

 更新時間:2013年05月21日 16:25:08   作者:  
本篇文章是對java中This的用法進行了詳細的分析介紹,需要的朋友參考下
用類名定義一個變量的時候,定義的應該只是一個引用,外面可以通過這個引用來訪問這個類里面的屬性和方法,那們類里面是夠也應該有一個引用來訪問自己的屬性和方法納?呵呵,JAVA提供了一個很好的東西,就是 this 對象,它可以在類里面來引用這個類的屬性和方法。先來個簡單的例子:
復制代碼 代碼如下:

public class ThisDemo { 
    String name="Mick";
    public void print(String name){
        System.out.println("類中的屬性 name="+this.name);
        System.out.println("局部傳參的屬性="+name);
    }  
    public static void main(String[] args) {
        ThisDemo tt=new ThisDemo();
        tt.print("Orson");
    }
}

關于返回類自身的引用,Thing in Java有個很經典的例子,通過this 這個關鍵字返回自身這個對象然后在一條語句里面實現多次的操作,還是貼出來。
復制代碼 代碼如下:

public class ThisDemo { 
    int number;
    ThisDemo increment(){
         number++;
         return this;
    } 
  private void print(){
         System.out.println("number="+number);
    }
    public static void main(String[] args) {
        ThisDemo tt=new ThisDemo();
         tt.increment().increment().increment().print();
    }
}

那也應該在一個類中定義兩個構造函數,在一個構造函數中通過 this 這個引用來調用另一個構造函數,這樣應該可以實現,這樣的實現機制在實際做應用開發(fā)的時候有會有什么樣子的用處納?貼下寫的代碼:
復制代碼 代碼如下:

public class ThisDemo { 
    String name;
    int age;
    public ThisDemo (){
        this.age=21;
   }    
    public ThisDemo(String name,int age){
        this();
        this.name="Mick";
    }    
  private void print(){
         System.out.println("最終名字="+this.name);
         System.out.println("最終的年齡="+this.age);
    }
    public static void main(String[] args) {
       ThisDemo tt=new ThisDemo("",0); //隨便傳進去的參數
       tt.print();
    }
}

看上面這段代碼雖然很短,理解起來似乎也很順理成章,在有參數的構造函數中賦值name 在無參數的當中賦值age屬性。但我個人覺得其中有點問題,實例化一個類應該先為對象ThisDemo分配內存,先調用構造函數ThisDemo(String name,int age),執(zhí)行到第一行的時候,調用ThisDemo()構造函數,也就是說這里應該會有兩個內存空間的,一個是ThisDemo(String name,int age)執(zhí)行到一點的空間和另一個是ThisDemo()執(zhí)行空間,為什么最后打印出來的結果是都實例化了一個對象中的兩個屬性name和age納?請大牛賜教!
總結一下:
1) this 關鍵字是類內部當中對自己的一個引用,可以方便類中方法訪問自己的屬性;
2)可以返回對象的自己這個類的引用,同時還可以在一個構造函數當中調用另一個構造函數(這里面上面有個問題)

相關文章

  • Java線程間通訊的幾種方法小結

    Java線程間通訊的幾種方法小結

    線程通信可以用于控制并發(fā)線程的數量,本文主要介紹了Java線程間通訊的幾種方法小結,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • 結合線程池實現apache?kafka消費者組的誤區(qū)及解決方法

    結合線程池實現apache?kafka消費者組的誤區(qū)及解決方法

    這篇文章主要介紹了結合線程池實現apache?kafka消費者組的誤區(qū)及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • navicatdesignquery.sql.bak系統(tǒng)找不到指定路徑錯誤的解決方法

    navicatdesignquery.sql.bak系統(tǒng)找不到指定路徑錯誤的解決方法

    今天小編就為大家分享一篇關于navicatdesignquery.sql.bak系統(tǒng)找不到指定路徑錯誤的解決方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot讀取文件,打成jar包后訪問不到的解決

    springboot讀取文件,打成jar包后訪問不到的解決

    這篇文章主要介紹了springboot讀取文件,打成jar包后訪問不到的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • MyBatis實現動態(tài)SQL更新的代碼示例

    MyBatis實現動態(tài)SQL更新的代碼示例

    本文博小編將帶領大家學習如何利用 MyBatis 攔截器機制來優(yōu)雅的實現這個需求,文中通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-07-07
  • Spring執(zhí)行流程和Bean的生命周期詳解

    Spring執(zhí)行流程和Bean的生命周期詳解

    這篇文章主要介紹了Spring執(zhí)行流程和Bean的生命周期詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • Struts2截取字符串代碼介紹

    Struts2截取字符串代碼介紹

    這篇文章主要介紹了Struts2截取字符串代碼介紹,介紹了基本的截取方法,以及截取帶html標簽字符串的方法,需要的朋友可以了解下。
    2017-09-09
  • SpringBoot整合RabbitMQ的5種模式實戰(zhàn)

    SpringBoot整合RabbitMQ的5種模式實戰(zhàn)

    本文主要介紹了SpringBoot整合RabbitMQ的5種模式實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 淺談Mybatis+mysql 存儲Date類型的坑

    淺談Mybatis+mysql 存儲Date類型的坑

    這篇文章主要介紹了淺談Mybatis+mysql 存儲Date類型的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Java語言面向對象編程思想之類與對象實例詳解

    Java語言面向對象編程思想之類與對象實例詳解

    這篇文章主要介紹了Java語言面向對象編程思想之類與對象實例詳解,還是十分不錯的,這里給大家分享下,需要的朋友可以參考。
    2017-10-10

最新評論

凤凰县| 林芝县| 治多县| 柳林县| 丘北县| 茌平县| 宾川县| 山阴县| 张家川| 沙坪坝区| 宁夏| 邵阳市| 兴国县| 嘉黎县| 神木县| 鄯善县| 岳阳县| 泗水县| 丰城市| 泸水县| 琼结县| 兰坪| 平罗县| 陇南市| 博爱县| 阿拉尔市| 搜索| 武川县| 沙田区| 资中县| 武安市| 洪江市| 福安市| 蓝田县| 六枝特区| 长泰县| 古浪县| 湖南省| 蒲城县| 古田县| 卫辉市|