码迷,mamicode.com
首页 > 其他好文 > 详细

this关键字

时间:2014-11-23 14:18:16      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   使用   sp   java   on   div   bs   

this关键字调用构造方法的原则:

(1)在构造方法中使用this关键字时,必须作为构造方法的第一条语句。(2)只能在构造方法中使用this关键字来调用所在类中的其它构造方法。(3)只能使用this关键字调用其它构造方法,而不能使用方法名直接调用构造方法。

 

this两种用法:

1. 区分同名变量

示例代码: TestThis_2.java

 

复制代码代码如下:

/* this的常见用法1:区分同名变量
 * 输出结果:
 * 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;                                           //这个i是成员变量

    /*注意:一般不这么写,构造函数主要是为了初始化,这么写主要是为了便于理解*/
    public A(int i) {                                           //这个i是局部变量
        System.out.printf("this. i = %d\n", this.i);            //this.i指的是对象本身的成员变量i
        System.out.printf("i = %d\n", i);                       //这里的i是局部变量i
    }   
}

 

2. 构造方法间的相互调用

示例代码: TestThis_3.java

 

复制代码代码如下:

/* this的常见用法2: 构造方法中互相调用*/
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   如果不注释掉就会报错:用this(...)调用构造方法的时候,只能把它放在第一句
         * 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;
    }   
}

this关键字

标签:style   io   ar   使用   sp   java   on   div   bs   

原文地址:http://www.cnblogs.com/dyc-cfc/p/4116394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!