|NO.Z.00027|——————————|BigDataEnd|——|Java&方法封装.V09|——|Java.v09|this关键字.v03|使用.v01|

一、this关键字的使用方式一
### --- this关键字的使用方式

~~~     ——>        当局部变量名与成员变量名相同时,在方法体中会优先使用局部变量(就近原则),
~~~     ——>        若希望使用成员变量,则需要在成员变量的前面加上this.的前缀,
~~~     ——>        明确要求该变量是成员变量(重中之重)。
~~~     ——>         this关键字除了可以通过this.的方式调用成员变量和成员方法外,
~~~     ——>        还可以作为方法的返回值(重点)。
~~~     ——>        在构造方法的第一行可以使用this()的方式来调用本类中的其它构造方法(了解)。
二、编程代码
### --- 编程代码

/*
    编程实现Person类的定义
 */
public class Person {
    
    String name; // 用于描述姓名的成员变量
    int age;     // 用于描述年龄的成员变量
    
    // 自定义构造方法
    // String s = "张飞";
    // int i = 30;
    // String s = "关羽";
    // int i = 35;
    // 就近原则  懒人原则  
    Person(String name, int age) {
        //System.out.println("我就是自定义的构造方法!");
        //name = "张飞";
        //age = 30;
        this.name = name;
        this.age = age;
    }
    // 自定义无参构造方法
    Person() {
    }
    
    // 自定义成员方法实现所有特征的打印  隐含着this关键字,this关键字代表当前正在调用的对象
    // Person this = p1;   this.name = p1.name = 张飞
    // Person this = p2;   this.name = p2.name = 关羽
    void show() {
        // 每当打印成员变量的数值时,让年龄增长一岁
        //this.grow();
        //grow();
        //System.out.println("我是" + this.name + ",今年" + this.age + "岁了!");
        System.out.println("我是" + name + ",今年" + age + "岁了!");
    }
    // 自定义成员方法实现年龄增长一岁的行为
    void grow() {
        age++;
    }
    // 自定义成员方法实现年龄增长参数指定数值的行为
    void grow(int age) {
        this.age += age;
    }
    // 自定义成员方法实现Person类型对象的获取并返回的行为
    //String getName(){}
    Person getPerson() {
        // 返回当前调用对象本身  Person tp = new Person();  return tp;
        return this;
    } 
    
    public static void main(String[] args) {
        
        // 1.声明一个Person类型的引用指向Person类型的对象
        // 当类中没有提供构造方法时,则下面调用默认构造方法,若类中提供构造方法后,则下面调用类中提供的版本
        Person p1 = new Person("张飞", 30);
        // 并打印特征
        p1.show();  // null 0  张飞  30
        
        Person p2 = new Person("关羽", 35);
        p2.show();  // 关羽 35
        
        Person p3 = new Person();
        p3.show(); // null 0
        
        System.out.println("----------------------------------------------------");
        // 2.实现重载方法的调用和测试
        p1.grow();
        p1.show(); // 张飞 31
        p1.grow(3);
        p1.show(); // 张飞 34
        
        System.out.println("----------------------------------------------------");
        // 3.调用成员方法获取对象
        Person p4 = p1.getPerson();
        System.out.println("p1 = " + p1);
        System.out.println("p4 = " + p4);
        
    }
}
三、编译打印
C:\Users\Administrator\Desktop\project>javac Person.java

C:\Users\Administrator\Desktop\project>java Person
我是张飞,今年30岁了!
我是关羽,今年35岁了!
我是null,今年0岁了!
----------------------------------------------------
我是张飞,今年31岁了!
我是张飞,今年34岁了!
----------------------------------------------------
p1 = Person@31b7dea0
p4 = Person@31b7dea0

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(20)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示