|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
分类:
bdv002-Java面向对象
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通