bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java的this關鍵字怎么用

java的this關鍵字怎么用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創新互聯建站專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站設計、網站制作、日喀則網絡推廣、微信小程序開發、日喀則網絡營銷、日喀則企業策劃、日喀則品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯建站為所有大學生創業者提供日喀則建站搭建服務,24小時服務熱線:18982081108,官方網址:vcdvsql.cn

this用在類內部,表示類實例本身。

this關鍵字是類內部當中對自己的一個引用,可以方便類中方法訪問自己的屬性。

java中this用法

1、當局部變量和成員變量重名的時候,在方法中使用this表示成員變量以示區分。

class Demo{
    String str = "這是成員變量";
    void fun(String str){
        System.out.println(str);
        System.out.println(this.str);
        this.str = str;
        System.out.println(this.str);
    }
}
public class This{
    public static void main(String args[]){
        Demo demo = new Demo();
        demo.fun("這是局部變量");
    }
}

分析:上面的類Demo中有一個成員變量str和一個局部變量str(類方法中的形式參數),很顯然局部變量和成員變量重名,這個時候一般在方法中直接使用str實際上是使用局部變量str,對成員變量str沒有任何影響,此時如果需要對成員變量做點什么,就必須使用this關鍵字。

有個問題,如果方法中沒有str,那么在方法中使用成員變量str會是什么情況呢?實際上是方法內的所有操作都是針對成員變量str的。java編程思想的84頁中部有這樣一句話:如果在方法內部調用同一個類的另一個方法,就不必使用this。同樣,在一個方法中如果沒有局部變量和成員變量同名,那么在這個方法中使用成員變量也不必使用this,可以運行下面的代碼看看。

class Demo{
    String str = "這是成員變量";
    void fun(String str1){
        System.out.println(str1);
        System.out.println(str);
    }
}
public class This{
    public static void main(String args[]){
        Demo demo = new Demo();
        demo.fun("這是局部變量");
    }
}

2、this關鍵字把當前對象傳遞給其他方法

這里有個很經典的例子,就是java編程思想的85頁的例子。我們拿出來仔細研究。

class Person{
    public void eat(Apple apple){
        Apple peeled = apple.getPeeled();
        System.out.println("Yummy");
    }
}
class Peeler{
    static Apple peel(Apple apple){
        //....remove peel
        return apple;
    }
}
class Apple{
    Apple getPeeled(){
        return Peeler.peel(this);
    }
}
public class This{
    public static void main(String args[]){
        new Person().eat(new Apple());
    }
}

java的this關鍵字怎么用

這是我自己的認識,也許不正確,看看書中是怎樣說的:Apple需要調用Peeler.peel()方法,他是一個外部的工具方法,將執行由于某種原因而必須放在Apple外部的操作(也許是因為該外部方法要應用于許多不同的類,而你卻不想重復這些代碼)。為了將其自身傳遞給外部方法,必須使用this關鍵字。

分析:設想一個場景,假如各種水果去皮的工作都是一樣的,只要給我水果,我都按同樣的方法去皮。那么結合上面的例子,傳進來一個水果,我們吃之前getPeeled(),必須將此水果作為參數傳遞給外部的peel(),用this來代表自身傳遞給外部方法。

3、當需要返回當前對象的引用時,就常常在方法寫return this;

這種做法的好處是:當你使用一個對象調用該方法,該方法返回的是經過修改后的對象,且又能使用該對象做其他的操作。因此很容易對一個對象進行多次操作。

public class This{
    int i = 0;
    This increment(){
        i += 2;
        return this;
    }
    void print(){
        System.out.println("i = " + i);
    }
    public static void main(String args[]){
        This x = new This();
        x.increment().increment().print();
    }
}

結果為:

4

4、在構造器中調用構造器需要使用this

一個類有許多構造函數,有時候想在一個構造函數中調用其他構造函數,以避免代碼重復,可以使用this關鍵字。在java編程思想中有這樣一段話:通常寫this的時候,都是指“這個對象”或者“當前對象”,而且它本身表示對當前對象的引用。在構造器中,如果為this添加了參數列表,那么就有不同的含義。這將產生對符合此參數列表的某個構造器的明確調用;這樣調用其他構造函數就有了直接的途徑。

java的this關鍵字怎么用

仔細分析:

從主函數開始,new Flower()會在內存分配空間,初始化對象,初始化對象是調用構造函數,這里沒有寫任何參數,當然是調用默認構造函數,就是那個無參的構函數。

這個無參的構造函數的第一行代碼就是this("hi",122);這里的意思是該無參構造函數又去調用帶兩個參數的構造函數,來到帶兩個參數的構造函數,第一行代碼是this(s);這行代碼自動匹配帶一個參數的構造函數,發現Flower(String ss)這個比較匹配,都是String類型的參數。

然后調用了帶有一個String類型參數的構造函數,打印:只有String類型的參數的構造函數  s = hi;然后回到上一級調用函數,就是帶有兩個參數的構造函數,打印輸出:有String和int類型的參數的構造函數;再回到上一級,就是無參構造函數,打印:默認構造函數

此時構造函數已經初始化完成新建的對象,最后在主函數的最后一行代碼中打印:petalCount=122  s=hi

畫個圖看得更明白。

java的this關鍵字怎么用

有幾點要注意:

1,this只可以調用一個構造器,在一個構造器中不能同時調用兩個構造器;

2,必須將你所調用的構造器放在最開始的位置,這也解釋了為什么不能在一個構造函數中調用兩個構造器,那第二個勢必不在最開始位置。

3,本例中在帶有兩個參數的構造函數中可以用this調用其他任意一個只有一個參數的構造函數,這取決你自己,隨便調哪一個都可以。

4,在構造函數之外的方法內不能使用this調用構造函數。代碼里面注釋的都不能正確編譯。

this總結

1、表示對當前對象的引用!

2、表示用類的成員變量,而非函數參數。

3、用于在構造方法中引用滿足指定參數類型的構造器(其實也就是構造方法)。但是這里必須非常注意:只能引用一個構造方法且必須位于開始!

4、很明顯this不能用在static方法中,因為this指代當前對象,而static則無對象之說。

關于java的this關鍵字怎么用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創新互聯行業資訊頻道了解更多相關知識。

標題名稱:java的this關鍵字怎么用
網頁地址:http://vcdvsql.cn/article32/jhidpc.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣虛擬主機營銷型網站建設網站收錄品牌網站制作自適應網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設