关于java:this在java中的用法

1.应用this关键字援用成员变量

作用:解决成员变量与参数或局部变量命名抵触的问题

public class Dog {
    String name;
    public Dog(String name) {
        this.name = name;
    }
}

 

2.应用this关键字援用成员函数。在办法中援用调用该办法的对象

作用:让类中一个办法,拜访该类的另一个办法或实例变量

class Dog {
    public void jump() {
        System.out.println("正在执行jump办法");
    }
    public void run() {
        Dog d = new Dog();
        d.jump();
        System.out.println("正在执行run办法");
    }
}

public class DogTest {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.run();
    }
}

Dog类中run办法调用jump办法肯定要通过对象调用,因为jump办法并没有被static润饰。但不用在run()办法中从新定义一个Dog类,因为DogTest类中当程序调用run()办法时,肯定会提供一个Dog对象,这样就能够间接应用这个曾经存在的Dog对象,而无须创立新的Dog对象。
因而通过this关键字就能够在run()办法中调用该办法的对象

public void run(){
    this.jump();//Java容许省略this前缀,即可间接写成jump();
    System.out.println("正在执行run办法");
}

static润饰的办法中不能应用this援用
例如:

public class DogTest {
    public void dog() {
        System.out.println("汪汪汪");
    }
    public static void main(String[] args){
        this.dog();    //报错:Cannot use this in a static context。
                       //省略掉this的状况下:同样报错,因为在静态方法中,不能间接拜访非动态成员(包含办法和变量)。非动态的变量是依赖于对象存在的,对象必须实例化之后,它的变量才会在内存中存在。 
                        //解决办法:法1.将dog()同样设置为动态  法2.先实例化对象,而后应用对象来调用函数
    }
}

 

3.应用this关键字在本身构造方法外部援用其它构造方法

在某个构造方法内应用this(参数列表),即可跳转到其余构造方法

 

4.用this关键字代表本身类的对象

return this 即代表return整个本身类

 

 

 


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理