【java】this关键字

this关键字

this关键字
当前类的实例的引用
this指向类的实例(看引用实际上指的是谁,就是new的是谁,谁就是实例),

1.通过this调用类中的属性

1.如果形参名字int x和成员名字相同,通过this关键字可以明确的去访问一个类的成员变量,解决与局部变量名称冲突的问题;

public class Point {
    public int x;
    public int y;
    public Point(){

    }
    public Point(int x){
        //如果形参名字int x和成员名字相同
        //此时明确作出区分
        //x当做形参
        //this关键字表示当前对象本身的引用
        this.x=x;

    }
    public Point(int x,int y){
        this.x=x;
        this.y=y;
    }

}

当形参名字int x和成员属性x时,类中属性无法被正确赋值。此时我们加上this关键字就可以正确的给对象属性赋值。
构造方法中的参数x是局部变量,但类中的属性x是成员变量,在构造方法中如果使用x,则是访问局部变量,但如果使用this.x则是访问成员变量。

当方法的局部变量和类的成员变量相同时,根据就近原则会优先使用局部变量如果需要访问本类中的成员变量,需要使用格式。this.成员变量名
“通过谁调用的方法谁就是this”
本文中name的方法sayHello(),在例子中·Person调用的sayHello(),所以Person就是this.

public class Person {
    String name;//我自己的名字
    //参数who是对方的名字
    //成员变量name是自己的名字
    public void sayHello(String name){
        System.out.println(name+"你好,我是"+this.name);

    }
}

public class Demo01Person {
    public static void main(String[] args) {
        Person person =new Person();
        //设置自己的名字
        person.name="王健林";
        person.sayHello("王思聪");//who 自动出现

2.通过this调用类中的方法

public class Date {
    int year;
    int month;
    int day;
    public void setDay(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;

    }
   public void printDay(){
   //调用类中的方法
        this.setDay(1,2,3);
   }

    public String toString(){
        return this.year+"/"+this.month+"/"+this.day;
    }

}

3.this调用自身的构造方法

一个构造方法中使用“this.(参数1,参数2…)”的形式来调用其他的构造方法

public class Person {
    public String name;
    public String age;
    public  Person(){
        //this调用构造方法,必须放在第一行
        this("xiaoming","14");

    }
    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }
    
    public void show(){
        System.out.println("名字是"+name+"年龄是"+age);
    }
    
    
}

注意事项:1.在一个构造方法当中,调用当前类的另外一个构造方法的时候,通过this()的形式调用,不能再成员方法中使用,切两个构造方法不能互相低啊用
2.必须放在第一行,且只能调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值