欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中this的用法示例(關(guān)鍵字this)

 更新時(shí)間:2014年03月28日 10:23:47   作者:  
這篇文章主要介紹了java中this的用法示例(關(guān)鍵字this),需要的朋友可以參考下

this是指向本身的隱含的指針,簡(jiǎn)單的說,哪個(gè)對(duì)象調(diào)用this所在的方法,那么this就是哪個(gè)對(duì)象。

示例代碼: TestThis_1.java

復(fù)制代碼 代碼如下:

/* 問題:什么是this
 * 輸出結(jié)果:
 * A@4e44ac6a
 */

public class TestThis_1 {
    public static void main(String[] args) {
        A aa = new A();
        System.out.println(aa.f()); //aa.f(), 返回aa這個(gè)對(duì)象的引用(指針)
    }  
}

class A {
    public A f() {
        return this;  //返回調(diào)用f()方法的對(duì)象的A類對(duì)象的引用
    }  
}

this的常見用法

1. 區(qū)分同名變量

示例代碼: TestThis_2.java

復(fù)制代碼 代碼如下:

/* this的常見用法1:區(qū)分同名變量
 * 輸出結(jié)果:
 * this. i = 1
 * i = 33
 */
public class TestThis_2 {
    public static void main(String[] args) {
        A aa = new A(33);
    }  
}

class A {
    public int i = 1;                                           //這個(gè)i是成員變量

    /*注意:一般不這么寫,構(gòu)造函數(shù)主要是為了初始化,這么寫主要是為了便于理解*/
    public A(int i) {                                           //這個(gè)i是局部變量
        System.out.printf("this. i = %d\n", this.i);            //this.i指的是對(duì)象本身的成員變量i
        System.out.printf("i = %d\n", i);                       //這里的i是局部變量i
    }  
}

2. 構(gòu)造方法間的相互調(diào)用

示例代碼: TestThis_3.java

復(fù)制代碼 代碼如下:

/* this的常見用法2: 構(gòu)造方法中互相調(diào)用*/
public class TestThis_3 {
    public static void main(String[] args) {

    }  
}

class A {
    int i, j, k;
    public A(int i) {
        this.i = i;
    }  

    public A(int i, int j) {
        /* i = 3;  error   如果不注釋掉就會(huì)報(bào)錯(cuò):用this(...)調(diào)用構(gòu)造方法的時(shí)候,只能把它放在第一句
         * TestThis_3.java:20: error: call to this must be first statement in constructor
         *      this(i);
         *                  ^
         *                  1 error
         */
        this(i);   
        this.j = j;
    }  

    public A(int i, int j, int k) {
        this(i, j);
        this.k = k;
    }  
}

注意事項(xiàng)

被static修飾的方法沒有this指針。因?yàn)楸籹tatic修飾的方法是公共的,不能說屬于哪個(gè)具體的對(duì)象的。

示例代碼: TestThis_4.java

復(fù)制代碼 代碼如下:

/*static方法內(nèi)部沒有this指針*/
public class TestThis_4 {
    public static void main(String[] args) {

    }  
}

class A {
    static A f() {
        return this;
        /* 出錯(cuò)信息:TestThis_4.java:10: error: non-static variable this cannot be referenced from a static context
         *          return this;
         *                     ^
         *                     1 error
         */
    }  
}

相關(guān)文章

  • Spring?MVC中JSON數(shù)據(jù)處理方式實(shí)戰(zhàn)案例

    Spring?MVC中JSON數(shù)據(jù)處理方式實(shí)戰(zhàn)案例

    Spring MVC是個(gè)靈活的框架,返回JSON數(shù)據(jù)的也有很多五花八門的方式,下面這篇文章主要給大家介紹了關(guān)于Spring?MVC中JSON數(shù)據(jù)處理方式的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 通過java.util.TreeMap源碼加強(qiáng)紅黑樹的理解

    通過java.util.TreeMap源碼加強(qiáng)紅黑樹的理解

    通過分析java.util.TreeMap源碼來(lái)對(duì)經(jīng)典問題紅黑樹加強(qiáng)理解和理清思路。
    2017-11-11
  • SpringCloud Config使用配置方法

    SpringCloud Config使用配置方法

    這篇文章給大家介紹SpringCloud Config使用及構(gòu)建配置中心的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-07-07
  • 深入了解Spring中Bean的作用域和生命周期

    深入了解Spring中Bean的作用域和生命周期

    這篇文章主要介紹了深入了解Spring中Bean的作用域和生命周期,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java結(jié)構(gòu)型設(shè)計(jì)模式之裝飾模式詳解

    Java結(jié)構(gòu)型設(shè)計(jì)模式之裝飾模式詳解

    裝飾模式(Decorator Pattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有類的一個(gè)包裝。這種模式創(chuàng)建了一個(gè)裝飾類,用來(lái)包裝原有的類,并在保持類方法簽名完整性的前提下,提供了額外的功能
    2023-03-03
  • 詳解Java中super的幾種用法并與this的區(qū)別

    詳解Java中super的幾種用法并與this的區(qū)別

    這篇文章主要介紹了Java中super的幾種用法并與this的區(qū)別,有需要的朋友可以參考一下
    2013-12-12
  • JDBC的擴(kuò)展知識(shí)點(diǎn)總結(jié)

    JDBC的擴(kuò)展知識(shí)點(diǎn)總結(jié)

    這篇文章主要介紹了JDBC的擴(kuò)展知識(shí)點(diǎn)總結(jié),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)JDBC的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • 重新實(shí)現(xiàn)hashCode()方法

    重新實(shí)現(xiàn)hashCode()方法

    hashCode()是Java中的一個(gè)重要方法,用于計(jì)算對(duì)象的哈希碼。本文介紹了如何重新實(shí)現(xiàn)hashCode()方法,包括使用對(duì)象的屬性計(jì)算哈希碼、使用字符串拼接計(jì)算哈希碼、使用隨機(jī)數(shù)計(jì)算哈希碼等方法。同時(shí),還介紹了如何避免哈希沖突,提高哈希表的效率。
    2023-04-04
  • Spring Boot 與 Vue.js 整合流程

    Spring Boot 與 Vue.js 整合流程

    本文重點(diǎn)介紹我在Spring Boot 與 Vue.js 整合實(shí)踐過程中的基本流程,以及遇到的問題,感興趣的朋友跟隨小編一起看看吧
    2018-09-09
  • hibernate4基本配置方式詳解

    hibernate4基本配置方式詳解

    這篇文章給大家?guī)?lái)了hibernate4基本配置方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧
    2017-09-09

最新評(píng)論