国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2018-01-15 21:25劉志雄
世紀(jì)之星·交流版 2017年8期
關(guān)鍵詞:對(duì)象

劉志雄

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

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

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

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

用例如下:

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è)形參的構(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è)形參的構(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);}}

程序運(yùn)行結(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è)對(duì)象,實(shí)際是運(yùn)行了空構(gòu)造函數(shù)與帶兩個(gè)形參的構(gòu)造函數(shù)。如果程序中保留第19行與第20行時(shí),必須把空構(gòu)造函數(shù)寫出來。程序的第21行是對(duì)對(duì)象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(); } }; //注意這里有分號(hào)

6.thread.start(); }

7.public void run() {

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

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

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

程序運(yùn)行結(jié)果:

在上述實(shí)例中,thread是一個(gè)匿名類對(duì)象,run函數(shù)體內(nèi)調(diào)用到了外部類animal的run函數(shù)。由于函數(shù)同名,不可直接調(diào)用:一是把外部類的run函數(shù)換一個(gè)名字如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ù)的作用是對(duì)象屬性的初始化,如程序中的第20行,依據(jù)參數(shù)傳遞分析知,20是對(duì)age的賦值,“小軍”是對(duì)name的賦值。

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

this的用法:

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

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

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

參考文獻(xiàn):

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

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

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

猜你喜歡
對(duì)象
神秘來電
涉稅刑事訴訟中的舉證責(zé)任——以納稅人舉證責(zé)任為考察對(duì)象
基于熵的快速掃描法的FNEA初始對(duì)象的生成方法
區(qū)間對(duì)象族的可鎮(zhèn)定性分析
三角范疇中的(n,m)-強(qiáng)ξ-Gorenstein投射對(duì)象