this关键字和构造方法

this关键字

重名的话是取不到的

public void setName(String name) {
    name = name;
}

this:代表当前类的对象引用,这个this和我们现实生活中很多案例相似,

如:每一个人都有一个名字:张三、李四、王五....this就相当于我

public void setName(String name) {
    this.name = name;
}

为什么要使用this:

  • 成员变量和局部变量重名

  • 创建任意一个对象默认都会创建一个this的引用指向同一个堆区空间

  • this的设计就类似于现实生活中的代词 我的

  • 默认一个类的成员都会省略掉this关键字

  • 谁调用就会是谁的,this表示当前对象的引用

  • this只能出现在类的内部

this的本质就是一个对象,引用,实例,变量。只不过和创建的对象指向了同一个块堆区的空间,

使用this对堆的空间做了修改那么一样会修改对象本身。

 

应用的场景:

  • 当成员变量和局部变量重名的情况

  • 需要在类的内部访问本类的成员

  • this访问本类的构造方法的时候

 

构造方法

有参和无参构造方法

作用:能够在对象创建之后对对象的成员变量快速的赋值

特点:

  • 构造方法没有返回值,连void关键字也没有

  • 方法名必须和类名相同

  • 方法体一般都是用来给成员变量赋值的

  • 如果我们没有自己添加构造方法,系统会默认给我们提供一个无参构造方法

  • 如果我们自己添加了构造方法,那么会覆盖掉系统提供的默认的构造方法

  • 构造方法也可以进行重载

  • 可以通过this关键字来实现构造器之间的相互调用,但是只能放置在构造器的第一行

 

无参的构造方法:

如果我们没有显示的定义任何的构造方法,那么系统会给我们提供一个默认的无参构造方法同样,如果我们显示的添加了构造方法那么默认的无参构造方法就不会提供了

public class a1 {
    public static void main(String[] args) {
        Users u = new Users(1,"张三",10);
        System.out.println(u);
    }
}

class Users{
    private int id;
    private String name;
    private int age;
    //无参
    public Users() {

    }
    //有参
    public Users(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

对构造方法进行重载

Users u1 = new Users(1);

public Users(int id){
    this.id=id;
}
public Users(int id, String name, int age) {
    // this ();    //表示调用无参构造方法
    this (id);    //表示调用有参的id
    //this.id = id;
    this.name = name;
    this.age = age;
}

 

 

posted @ 2022-06-15 20:32  魔光领域  阅读(42)  评论(0编辑  收藏  举报