084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

时间:2023-12-17 22:19:32

084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

本文知识点:构造方法-this关键字

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

上文回顾

上文我们讲到:带参构造方法,多数情况下的作用,用于设置属性值,如何实现带参构造方法的输入参数的参数值传递给成员属性呢?

我们讲了方案1:修改带参构造方法的输入参数的参数名的方式, 来去完成对成员属性的匹配赋值。

但是方案1的弊端比较明显:

1、需要刻意将参数名设置为与属性名不同的名字,比较麻烦

2、因为修改了名字,在相应对照的时候也很不方便

有没有什么方法,可以减少工作量(不用修改参数名),又能清晰的知道是给属性赋值呢?

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

这种方案肯定是有的!答案就是通过使用this关键字

this关键字

this关键字代表当前对象,可以通过this关键字显式的告诉编译器,你这个传递的参数name是要赋值给我当前的对象的name属性的。

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

无法赋值的情况:

public cat(String name,int month,double weight,String species){
name = name;
month = month;
weight = weight;
species = species;
}

使用this关键字后,就不会发生无法赋值的情况。

public cat(String name,int month,double weight,String species){
this.name = name;
this.month = month;
this.weight = weight;
this.species = species;
}

通过使用this关键字,带参构造方法设置属性值成功。

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

当前对象是什么?

this代表当前对象,什么是当前对象,我们显然可以认为谁调用方法体中有this关键字的方法,谁就是当前对象。

在上述程序的编译过程中,one就是当前对象。

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

this可以调用属性

以上:

public cat(String name,int month,double weight,String species){
this.name = name;
this.month = month;
this.weight = weight;
this.species = species;
}

this调用了属性。

同样this也可以调用方法

this也可以调用方法

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

084 01 Android 零基础入门  02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字