Java中this关键字的用法

x33g5p2x  于10个月前 转载在 Java  
字(1.0k)|赞(0)|评价(0)|浏览(149)

首先我们需要知道this代表什么??

this关键字代表本类,例如Class Student
类中的this即代表Student,另外要注意一点,this关键字只能在方法内使用,方法外使用是编译不通过的!!!

用法一:this.属性名
this表示当前类,this.属性名可以给当前类的属性赋值,可以在本类中除静态方法外的任何方法(包括构造器、私有方法)中使用,这里要注意static的特性(1.遵循静态调用 2·stati关键字不能与this、super关键字共用)。
另外,若本类成员变量与方法内局部变量同名,this.属性名代表的是什么呢??
当然是局部变量了,因为Java遵循就近原则,通俗地讲,就是谁离我近,我就代表谁。
代码实现:

class Student{
    String name;
    public void hello(){
        this.name=name;
    }
}

用法二:this.方法
这里比较好理解,this代表本类,this.方法即调用方法,除了静态方法中不可使用,本类其他方法包括私有方法均可使用此格式调用其他方法,只是我们通常省略this关键字。
代码实现:

class Student{
    String name;
    public void hello(){
        this.name=name;
    }
//    this.name=name;this需要在方法内使用
    public void hi(){
        this.hello();
        hello();
        he();
    }
    private void he(){
        this.name=name;
        hello();
        this.he();
    }
}

用法三:this()
此格式用于构造器内,比如我们可以在无参构造内调用含参构造,那么这时候就需要在this()传入参数来实现,同理要想在含参构造内调用无参构造,只需在构造器代码第一行写this()即可,但是注意,this()与this(参数列表)不可同时使用!
代码实现:

public Student(){
        this("name");
        this.name=name;
     this.he();
    }
    public Student(String name){
//        this();两个this不能一起使用
    }

注意:

static void play(){
//        this.name=name;静态不能调用非静态
    }

若有错请批评指正,共勉~

相关文章

热门文章

更多