• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      詳析 java中的構(gòu)造函數(shù)與this關(guān)鍵字

      2018-01-15 21:25:17劉志雄
      世紀之星·交流版 2017年8期
      關(guān)鍵詞:構(gòu)造函數(shù)對象

      劉志雄

      [摘 要]java中的構(gòu)造函數(shù)與this在程序當中起著非常重要的作用:構(gòu)造函數(shù)主要用來完成對對象屬性的初始化工作;this的作用類似于C語言里的指針。本文將結(jié)合簡單實例對構(gòu)造函數(shù)與this的一般用法與特殊用法進行詳細分析。

      [關(guān)鍵詞]構(gòu)造函數(shù);java;對象;this

      在一個類中,如果定義了與成員變量同名的形式參數(shù),要區(qū)分到底是成員變量還是形式參數(shù),通過this來進行區(qū)分。在Java的學(xué)習(xí)當中,this關(guān)鍵字起著指針的作用,用來指示成員變量與成員方法還有構(gòu)造函數(shù)。在已有的文獻當中分析構(gòu)造函數(shù)與this的用法時,用例和分析過于復(fù)雜,下面用簡單實例來全面分析構(gòu)造函數(shù)與this的用法。

      一、構(gòu)造函數(shù)與this用法實例

      用例如下:

      class student{

      1.int age;

      2.String name;

      3.student(){

      // 5.1 student(age);

      4.System.out.println("空構(gòu)造函數(shù)");}

      5.student(int age){

      6.this();

      7.this.age=age;

      8.System.out.println("帶一個形參的構(gòu)造函數(shù)"); }

      9.student(int age, String name){

      10. this(age);

      11. this.age=age;

      12. this.name=name;

      13. this.f();

      14. System.out.println("帶兩個形參的構(gòu)造函數(shù)"); }

      15. void f(){

      16. //this();

      17. System.out.println("成員方法"); }

      18.public static void main(String[] args){

      19. student a1=new student();

      20. student a2=new student(20,"小軍");

      21. System.out.println("年齡"+a2.age+"名字"+a2.name);}}

      程序運行結(jié)果如下:

      二、構(gòu)造函數(shù)與this一般用法的分析

      第3行.5行.9 行是定義student類的構(gòu)造函數(shù),第6行.10行是用this來調(diào)用構(gòu)造函數(shù);另外,構(gòu)造函數(shù)不能相互調(diào)用:如第5.1行與第6行。第7行.11行.12行是this用來指示成員變量,使用this.age, this.name來指示成員變量。第13行表示在構(gòu)造函數(shù)中調(diào)用了成員方法f()。第19行與第20行是創(chuàng)建了兩個對象,實際是運行了空構(gòu)造函數(shù)與帶兩個形參的構(gòu)造函數(shù)。如果程序中保留第19行與第20行時,必須把空構(gòu)造函數(shù)寫出來。程序的第21行是對對象a2的屬性值的輸出。

      三、this 的特殊用法

      接下來分析this在匿名類和內(nèi)部類中的應(yīng)用。

      用例如下:

      1.public class animal {

      2.animal(){

      3.Thread thread = new Thread(){

      4.public void run() {

      5.animal.this.run(); } }; //注意這里有分號

      6.thread.start(); }

      7.public void run() {

      9.System.out.println("我是成員方法run ");}

      10. public static void main(String[] args) {

      11. animal as=new animal();}}

      程序運行結(jié)果:

      在上述實例中,thread是一個匿名類對象,run函數(shù)體內(nèi)調(diào)用到了外部類animal的run函數(shù)。由于函數(shù)同名,不可直接調(diào)用:一是把外部類的run函數(shù)換一個名字如outrun,代碼第5行改成animal.outrun(); 第7行public void run()改成public static void outrun()但這種方法不建議使用。二是用上面例子中的辦法,用外部類的類名加上this引用來說明要調(diào)用的是外部類的方法run。

      四、結(jié)語

      構(gòu)造函數(shù):

      1.構(gòu)造函數(shù)的定義:方法名與類名相同且沒有返回值。

      2.構(gòu)造函數(shù)的作用是對象屬性的初始化,如程序中的第20行,依據(jù)參數(shù)傳遞分析知,20是對age的賦值,“小軍”是對name的賦值。

      3.空構(gòu)造函數(shù)可隨類的加載自動調(diào)用,但創(chuàng)建對象時,空構(gòu)造函數(shù)與帶參數(shù)的構(gòu)造函數(shù)都用上了,這時空構(gòu)造函數(shù)就必須顯性的寫出來即程序代碼中的第3行。

      this的用法:

      1.this.變量名:用來指示成員變量,即代碼中的第7行.1行1.12行,如this.age=age,等號后面的age構(gòu)造函數(shù)中括號里的age, this.age中的age是指的成員變量。

      2.this.方法名():用來指示成員方法,如代碼中的this.f(),指的f()方法是成員方法。

      3.this():這種格式的代碼是用來指調(diào)用構(gòu)造函數(shù),如果括號里帶了參數(shù),指的是調(diào)用帶參數(shù)的構(gòu)造函數(shù),如代碼this(age),指的是調(diào)用帶age參數(shù)的構(gòu)造函數(shù)。

      參考文獻:

      [1]唐明虎.基于項目任務(wù)驅(qū)動的Java語言教學(xué)模式研究[J].智能計算機與應(yīng)用,2010,01.

      [2] 安博教育集團,Java核心技術(shù)[M].北京:電子工業(yè)出版社,2012.

      基金項目:湖南省教育科學(xué)“十三五”規(guī)劃2017年度課題:XJK17BGD083 。endprint

      猜你喜歡
      構(gòu)造函數(shù)對象
      神秘來電
      睿士(2023年2期)2023-03-02 02:01:09
      攻略對象的心思好難猜
      意林(2018年3期)2018-03-02 15:17:24
      一道試題的解法分析與方法應(yīng)用
      考試周刊(2017年38期)2017-12-28 19:32:38
      例談洛必達法則在高考數(shù)學(xué)壓軸題的應(yīng)用
      基于熵的快速掃描法的FNEA初始對象的生成方法
      區(qū)間對象族的可鎮(zhèn)定性分析
      云龙县| 南召县| 旅游| 连平县| 秀山| 吴旗县| 安徽省| 韩城市| 满洲里市| 巴彦淖尔市| 政和县| 富裕县| 诸城市| 东平县| 安庆市| 准格尔旗| 平定县| 岳普湖县| 德江县| 岑巩县| 石棉县| 吴川市| 浮梁县| 道真| 长沙县| 出国| 井冈山市| 斗六市| 洪湖市| 航空| 交口县| 三穗县| 汽车| 淮安市| 刚察县| 六安市| 罗江县| 宁德市| 富川| 本溪市| 沛县|