• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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)定性分析
    兴业县| 瓮安县| 临安市| 乌苏市| 灵寿县| 亳州市| 静宁县| 南岸区| 合阳县| 乌审旗| 平阳县| 新乐市| 宜兴市| 云浮市| 永登县| 衡阳县| 广东省| 张家界市| 天津市| 方正县| 福建省| 习水县| 绥阳县| 连山| 平安县| 昌吉市| 盘山县| 蚌埠市| 中超| 唐河县| 沁水县| 潍坊市| 南充市| 靖宇县| 桂平市| 连城县| 通山县| 禄丰县| 稷山县| 枣强县| 景宁|