• 00048_this关键字


    1、this调用构造方法

      (1)构造方法之间的调用,可以通过this关键字来完成;

      (2)构造方法调用格式

    this(参数列表);

      (3)小案例

     1 class Person {
     2     // Person的成员属性
     3     private int age;
     4     private String name;
     5 
     6     // 无参数的构造方法
     7     Person() {
     8     }
     9 
    10     // 给姓名初始化的构造方法
    11     Person(String nm) {
    12         name = nm;
    13     }
    14 
    15     // 给姓名和年龄初始化的构造方法
    16     Person(String nm, int a) {
    17         // 由于已经存在给姓名进行初始化的构造方法 name = nm;因此只需要调用即可
    18         // 调用其他构造方法,需要通过this关键字来调用
    19         this(nm);
    20         // 给年龄初始化
    21         age = a;
    22     }
    23 }

    2、成员变量和局部变量同名问题

      当在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量。

     1 class Person {
     2     private int age;
     3     private String name;
     4 
     5     // 给姓名和年龄初始化的构造方法
     6     Person(String name, int age) {
     7         // 当需要访问成员变量是,只需要在成员变量前面加上this.即可
     8         this.name = name;
     9         this.age = age;
    10     }
    11 
    12     public void speak() {
    13         System.out.println("name=" + this.name + ",age=" + this.age);
    14     }
    15 }
    16 
    17 class PersonDemo {
    18     public static void main(String[] args) {
    19         Person p = new Person("张三", 23);
    20         p.speak();
    21     }
    22 }

    3、在Person类中定义功能,判断两个人是否是同龄人

     1 class Person {
     2     private int age;
     3     private String name;
     4 
     5     // 给姓名和年龄初始化的构造方法
     6     Person(String name, int age) {
     7         // 当需要访问成员变量是,只需要在成员变量前面加上this.即可
     8         this.name = name;
     9         this.age = age;
    10     }
    11 
    12     public void speak() {
    13         System.out.println("name=" + this.name + ",age=" + this.age);
    14     }
    15 
    16     // 判断是否为同龄人
    17     public boolean equalsAge(Person p) {
    18         // 使用当前调用该equalsAge方法对象的age和传递进来p的age进行比较
    19         // 由于无法确定具体是哪一个对象调用equalsAge方法,这里就可以使用this来代替
    20         /*
    21          * if(this.age == p.age) { return true; } return false;
    22          */
    23         return this.age = p.age;
    24     }
    25 }
  • 相关阅读:
    @RequestParam和@PathVariable用法小结
    Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
    allator 对springBoot进行加密
    commons-lang3相关类实例
    JSP自定义标签
    Netty的简单Demo
    Spring-AOP为类增加新的功能
    深入理解abstract class和interface
    linux的基本操作
    GitHub从小白到熟悉<二>
  • 原文地址:https://www.cnblogs.com/gzdlh/p/8082128.html
Copyright © 2020-2023  润新知