java中的this

java中的this

this主要要三种用法:
1、表示对当前对象的引用。
2、表示用类的成员变量(而非函数参数)。
3、用于在构造方法中引用满足指定参数类型的构造方法。

注意:this不能用在static方法中。每当一个对象创建后,Java虚拟机会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this的用法。

这里this表示什么?

// 该例意在演示this的用法
public class MyDate {
    private int day, month, year;
    // 创建构造方法
    public MyDate(int day, int month, int year) {
        this.day = day;
        this.month = month;
        this.year = year;
    }
    public String tommorrow() {
        day = day +1;
        return day + "/" + month + "/" + year;
    }
    public static void main(String[] args) {
        MyDate d = new MyDate(11,2,2016);
        System.out.println(d.tommorrow());
    }
}
/*
 * 12/2/2016
 * */
 ```

如果在某个方法中把this作为返回值,则可以多次连续调用一个方法:
```java
public class ReturnThis {
    int number;

    ReturnThis increment() {
        number++;
        return this;
    }

    private void print() {
        System.out.println("number = " + number);
    }

    public static void main(String[] args) {
        ReturnThis tt = new ReturnThis();
        tt.increment().increment().increment().increment().print();
    }
}




<div class="se-preview-section-delimiter"></div>

体会下面的两个例子:

public class ThisDemo {
    String name;
    int age;

    public ThisDemo() {
        this.age = 21;
    }

    public ThisDemo(String name, int age) {
        //this();
        this.name = "Nick";
    }

    private void print() {
        System.out.println("最终的名字 = " + this.name);
        System.out.println("最终的年龄 = " + this.age);
    }

    public static void main(String[] args) {
        ThisDemo tt = new ThisDemo("", 0); // 随便传进去的参数
        tt.print();
    }
}
/*
 * 最终的名字 = Nick
最终的年龄 = 0
 */




<div class="se-preview-section-delimiter"></div>
public class ThisDemo {
    String name;
    int age;

    public ThisDemo() {
        this.age = 21;
    }

    public ThisDemo(String name, int age) {
        this();
        this.name = "Nick";
    }

    private void print() {
        System.out.println("最终的名字 = " + this.name);
        System.out.println("最终的年龄 = " + this.age);
    }

    public static void main(String[] args) {
        ThisDemo tt = new ThisDemo("", 0); // 随便传进去的参数
        tt.print();
    }
}
/*
 * 最终的名字 = Nick
最终的年龄 = 21
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值