java基础 this keyword!

为了程序的可读性,通常将一个类中的表示同一属性的变量进行统一的命名。可是这样做又会导致成员变量与局部变量名字冲突导致无法訪问成员变量。为了解决问题,java中引入了this这个keyword!所以this 的作用就是用于在方法中訪问对象的其它成员!

thiskeyword有下面三种常见使用方法:

1)通过thiskeyword能够明白的訪问成员变量。解决与局部变量重名的矛盾!

(成员变量与局部变量冲突的时候)

class Student{
    int id;
    public Student(int id){
        this.id=id;
    }
    public int getId(){
        return this.id;
    }
}
构造方法中的參数是id,它是一个局部变量与成员变量id重名。

通常在构造方法中使用this.id訪问成员变量,通过id訪问构造方法中的内部变量!

2)通过this keyword能够调用成员方法!

(多个成员方法的时候)

class Person{
    public void eat{
        ...
    }
    public void behavior{
        this.eat();
        ...
    }
}

在一个类中有多个成员方法的时候,通过thiskeyword能够方便的实如今一个成员方法中调用还有一个成员方法!

3)构造方法是在实例化对象的时候被java虚拟机自己主动调用的。在程序中无法像调用一般成员方法一样调用构造方法。可是能够通过在一个构造方法中使用this(參数1。參数2,參数3。。。)的形式来调用其它的构造方法。(多个构造方法的时候)

class Student{
    public Student(){
        System.out.print("訪问了无參构造方法!

"); } public Student(String id){ this(); System.out.println("訪问了有參构造方法。"); } } public class eg{ public static void main(String[] args){ Student s=new Student(3);//实例化对象的时候 } }


可是使用第三种的时候须要注意一些问题:

<1> this()的调用必须放在第一行,并且仅仅能出现一次。

<2>this()的调用仅仅能是在构造方法中调用还有一个构造方法,不能再成员方法中调用构造方法。

<3>不能在一个类的两个构造方法中使用this互相调用!这样叫easy造成死循环!

posted @ 2017-06-23 15:42  llguanli  阅读(409)  评论(0编辑  收藏  举报