关键字:this总结

this关键字的使用

1. 目前可能出现的问题?及解决方案?

我们在声明一个属性对应的setXxx方法时,通过形参给对应的属性赋值。如果形参名和属性名同名了,那么该如何在方法内区分这两个变量呢?

解决方案:使用this。具体来讲,使用this修饰的变量,表示的是属性。没有用this修饰的,表示的是形参。

举例
原本不同名时
package chapter07_oop2.src.com.atguigu01._this.exer1;

/**
 * ClassName: PersoTest
 * Package: chapter07_oop2.src.com.atguigu01._this.exer1
 * Description:
 *
 * @Author 小白
 * @Create 2024/3/30 10:56
 * @Version 1.0
 */
public class PersoTest {

    public static void main(String[] args) {
        Person p1 = new Person();
        p1.setAge(10);
        System.out.println(p1.age);
    }
}

class  Person{
    String name;
    int age;


    public  void setAge(int a){
        age = a;
    }




}

 

现在相同名
package chapter07_oop2.src.com.atguigu01._this.exer1;

/**
 * ClassName: PersoTest
 * Package: chapter07_oop2.src.com.atguigu01._this.exer1
 * Description:
 *
 * @Author 小白
 * @Create 2024/3/30 10:56
 * @Version 1.0
 */
public class PersoTest {

    public static void main(String[] args) {
        Person p1 = new Person();
        p1.setAge(10);
        System.out.println(p1.age);
    }
}

class  Person{
    String name;
    int age;


    public  void setAge(int age){
        this.age = age;
    }




}


  
2. this可以调用的结构:成员变量、方法、构造器

3. this的理解:当前对象(在方法中调用时) 或 当前正在创建的对象(在构造器中调用时)


4.1 this调用属性和方法

【针对于方法内的使用情况:(准确的说是非static修饰的方法)】

一般情况:我们通过对象a调用方法,可以在方法内调用当前对象a的属性或其他方法。此时,我们可以在属性和其他方法前
使用"this.",表示当前属性或方法所属的对象a。但是,一般情况下,我们都选择省略此"this."结构。
特殊情况:如果方法的形参与对象的属性同名了,我们必须使用"this."进行区分。使用this.修饰的变量即为属性(或成员变量),
没有使用this.修饰的变量,即为局部变量。


【针对于构造器内的使用情况:】
一般情况:我们通过构造器创建对象时,可以在构造器内调用当前正在创建的对象的属性或方法。此时,我们可以在属性和方法前
使用"this.",表示当前属性或方法所属的对象。但是,一般情况下,我们都选择省略此"this."结构。
特殊情况:如果构造器的形参与正在创建的对象的属性同名了,我们必须使用"this."进行区分。使用this.修饰的变量即为
属性(或成员变量),没有使用this.修饰的变量,即为局部变量。


4.2 this调用构造器
> 格式:"this(形参列表)"
> 我们可以在类的构造器中,调用当前类中指定的其它构造器
> 要求:"this(形参列表)"必须声明在当前构造器的首行
> 结论:"this(形参列表)"在构造器中最多声明一个
> 如果一个类中声明了n个构造器,则最多有n-1个构造器可以声明有"this(形参列表)"的结构

相关推荐

  1. QT-this关键字

    2024-04-01 20:16:02       9 阅读
  2. 面试题--this关键字

    2024-04-01 20:16:02       9 阅读
  3. static关键字总结

    2024-04-01 20:16:02       13 阅读
  4. $(this) 和 this 关键字在 jQuery 中有何不同?

    2024-04-01 20:16:02       7 阅读
  5. Mysql 常用关键字总结

    2024-04-01 20:16:02       13 阅读
  6. C#访问关键字this和base有什么作用

    2024-04-01 20:16:02       10 阅读
  7. iOS object-c self关键字总结

    2024-04-01 20:16:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 20:16:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 20:16:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 20:16:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 20:16:02       18 阅读

热门阅读

  1. HTML元信息

    2024-04-01 20:16:02       17 阅读
  2. 配置一个nginx的server, 提供获取ip的服务

    2024-04-01 20:16:02       16 阅读
  3. 标题:AI大模型学习:解放智能的未来之路

    2024-04-01 20:16:02       17 阅读
  4. 深入探秘Python生成器:揭开神秘的面纱

    2024-04-01 20:16:02       14 阅读
  5. 计算机网络目录

    2024-04-01 20:16:02       16 阅读
  6. ChatGPT助力学术论文写作:方法与实践

    2024-04-01 20:16:02       20 阅读