Java关键字this

调用本类属性

this明确是一个灵活的关键字,他不会明确的表示出任何一个固定的概念

利用this调用本类属性

类之中有许多成员,在大部分情况下,类里面是直接进行成员的调用,但是很多时候为了能够更加清楚地描述出调用的是本类属性,所以调用属性时,可以采用this.属性的方式

通过代码观察其意义:

class NewPerson{
    String name;
    int age;
    public NewPerson(String name,int age){
        this.name = name;
        this.age = age;
    }
    public String getInfo(){
        return "姓名:"+this.name+",年龄:"+this.age;
    }
}

class ThisTest{
    public static void main(String[] args){
        NewPerson per = new NewPerson("张三",15);
        System.out.println(per.getInfo());
    }
}

此代码在构造方法上的参数很明确是要做什么,就是为了name和age属性赋值,当参数和属性名称相同的时候,就会出现混淆的概念,那么就需要用户自己利用this.属性手工的调用方法中的属性

调用本类方法

在一个类中方法实际上存在有两类:普通方法、构造方法,而this调用本类方法的语法是不同的

调用本类的其他方法:this.方法()

在一个类的不同方法之间可以通过this.方法()调用,示例代码如下:

class NewPerson{
    String name;
    int age;
    public NewPerson(String name,int age){
        this.name = name;
        this.age = age;
        this.paint();
    }
    public void paint(){
        System.out.println("姓名:"+this.name+",年龄:"+this.age);
    }
}

调用本类其它构造方法:this()

一个类中是可以存在有构造方法的,而且构造方法可以重载,并且构造方法只在实例化对象中调用一次
因此我们举例:一个Preson类中要求提供有三个构造方法,但是不管调用哪个构造方法都会执行一句“新的Person类对象实例化了”的输出,使用this();的代码如下:

class NewPerson{
    String name;
    int age;

    public NewPerson(){
        System.out.println("新的Person类对象实例化了");
    }
    public NewPerson(String name){
        this();//使用无参构造方法
        this.name = name;
    }
    public NewPerson(String name,int age){
        this(name);//使用单参构造方法
        this.age = age;
    }
    public void paintf(){
        System.out.println("姓名:"+this.name+",年龄:"+this.age);
    }
}

使用this()"方法可以进行简化代码,但是也是有限制的:\color{red}{该语句只能放在构造方法的首行,,且在使用此方法时应避免循环的形式出现,留给出口}

你可能感兴趣的:(Java关键字this)