加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java之this关键字

发布时间:2020-12-15 06:44:25 所属栏目:Java 来源:网络整理
导读:this是什么? 在Java中,this表示当前对象,可以调用类的属性、方法和构造方法。 它在方法内部使用,即这个方法所属对象的引用; 它在构造器内部使用,表示该构造器正在初始化的对象; 什么时候使用? 当在方法内需要用到调用该方法的对象时,就用this。例如

this是什么?

  • 在Java中,this表示当前对象,可以调用类的属性、方法和构造方法。
  • 它在方法内部使用,即这个方法所属对象的引用;
  • 它在构造器内部使用,表示该构造器正在初始化的对象;

什么时候使用?

当在方法内需要用到调用该方法的对象时,就用this。例如:

public class Person{
    String name;
    int age;
    public Person(String name, age){
        //此时,为了明确形参和成员变量,需要使用this
        this.name = name;
        this.age = age
    }
    void setName(String name){
        同样的,在方法中,也需要辨别
         name;
    }
    public String getName(){
        return this.name;
    }
}

同时,在构造器中使用this需要遵从以下原则

  • 使用this()必须放在构造器首行;
  • 使用this调用本类中其它构造器,保证至少有一个构造器是不用this的(实际上就是构造器不能自己调用自己);

Person.java

package myjava;

 Person {
    private String name;
    private  age;
    
     Person() {}
    
    public Person( age) {
         age;
    }
    
     Person(String name) {
        this();这个this()实际上调用的是Person()
         name;
    }
    
    this(age);这个this(age)实际上调用的是Person(int age)
         name;
    }
     setName(String name) {
         String getName() {
        .name;
    }
    void setAge( age;
    }
     getAge() {
        .age;
    }
}

Test.java

 Test {
    static  main(String[] args) {
        Person p = new Person();
        p.setAge(20);
        p.setName("tom");
        int age = p.getAge();
        String name = p.getName();
        System.out.println("name:"+name);
        System.out.println("age:"+age);
        
        Person p1 = new Person(10);
        String name1 = p1.getName();
        int age1 = p1.getAge();
        System.out.println("name1:"+name1);
        System.out.println("age1:"+age1);
        
        Person p2 = new Person("jack");
        String name2 = p2.getName();
        int age2 = p2.getAge();
        System.out.println("name2:"+name2);
        System.out.println("age2:"+age2);
        
        Person p3 = new Person("bob",30);
        String name3 = p3.getName();
        int age3 = p3.getAge();
        System.out.println("name3:"+name3);
        System.out.println("age3:"+age3);

    }
}

最后输出:

说明:新建一个对象时,根据传的参数的不同(类型或者个数),java会调用相应的构造方法。在构造方法中,通过this(参数),又会调用其它的构造方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读