999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

詳析 java中的構造函數與this關鍵字

2018-01-15 21:25:17劉志雄
世紀之星·交流版 2017年8期

劉志雄

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

[關鍵詞]構造函數;java;對象;this

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

一、構造函數與this用法實例

用例如下:

class student{

1.int age;

2.String name;

3.student(){

// 5.1 student(age);

4.System.out.println("空構造函數");}

5.student(int age){

6.this();

7.this.age=age;

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

9.student(int age, String name){

10. this(age);

11. this.age=age;

12. this.name=name;

13. this.f();

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

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);}}

程序運行結果如下:

二、構造函數與this一般用法的分析

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

三、this 的特殊用法

接下來分析this在匿名類和內部類中的應用。

用例如下:

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();}}

程序運行結果:

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

四、結語

構造函數:

1.構造函數的定義:方法名與類名相同且沒有返回值。

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

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

this的用法:

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

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

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

參考文獻:

[1]唐明虎.基于項目任務驅動的Java語言教學模式研究[J].智能計算機與應用,2010,01.

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

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

主站蜘蛛池模板: 91久久夜色精品国产网站| 无码精品福利一区二区三区| 亚欧美国产综合| 2021亚洲精品不卡a| 狠狠色成人综合首页| 国产区免费| 午夜福利在线观看入口| 真实国产精品vr专区| 毛片在线播放网址| 91精品网站| 国产高清毛片| av一区二区三区高清久久| 中文字幕无码av专区久久| 欧美成在线视频| 在线视频一区二区三区不卡| 色综合天天综合| av天堂最新版在线| 日本欧美成人免费| 国产成年女人特黄特色毛片免| 精品国产福利在线| 一级片一区| 欧美色图久久| www.精品视频| 国产专区综合另类日韩一区| 成人在线亚洲| 日韩天堂视频| 国产91麻豆视频| 亚洲国产91人成在线| 毛片大全免费观看| 国产精品香蕉| 欧美国产在线看| 五月激情婷婷综合| 九色综合伊人久久富二代| 国产精品手机在线播放| 国产福利大秀91| 狠狠色成人综合首页| 特级欧美视频aaaaaa| 久久婷婷色综合老司机| 中文字幕va| 亚洲天堂视频在线观看免费| 欧美成在线视频| 国产成人8x视频一区二区| 国产精品真实对白精彩久久| 欧美丝袜高跟鞋一区二区| 欧美色图久久| 国产丝袜丝视频在线观看| 亚洲 日韩 激情 无码 中出| 久久精品人人做人人爽97| 亚洲三级影院| 一级香蕉人体视频| 欧美日韩在线国产| 亚洲精品视频在线观看视频| 夜夜操国产| 国产成人亚洲无码淙合青草| 亚洲视频影院| 中文字幕色在线| 欧美日韩中文字幕在线| 国产精品久久国产精麻豆99网站| 免费看a级毛片| 久久6免费视频| 久久99国产乱子伦精品免| 国产白浆在线| 在线观看视频99| 亚洲欧洲一区二区三区| 内射人妻无套中出无码| 欧美日韩导航| 中文字幕日韩欧美| 超清无码一区二区三区| 免费在线观看av| 99久久免费精品特色大片| 亚洲人妖在线| 性欧美精品xxxx| 97视频在线精品国自产拍| 欧美一级在线播放| 欧美日韩va| 国产一区二区三区精品久久呦| 97国产在线视频| 成年人国产网站| 亚洲国产日韩在线成人蜜芽| 中文字幕欧美日韩| 国产精品一区二区不卡的视频| 日韩精品无码一级毛片免费|