this关键字---》2
三.this的用法:
1.在构造器中调用另一个构造器
(注意:该语句要在第一条,只能在构造器中使用)
2.调用成员方法: this.方法名(参数列表)
3.不能再类外部使用
4.用于访问类的属性,是有就近原则在的
总之,this可以用来访问属性、成员方法和构造器
5.this用来区分局部变量和属性
自己演示上述用法的代码:
public class ThisDetail01 {
public static void main(String[] args) {
T c = new T();
c.f1();
}
}
class T{
//属性
String name="xiao";
int age=18;
//构造器
public T(){
this("xx",16);
System.out.println("1.调用构造器");
System.out.println("T()构造器被调用");
System.out.println("===============================");
}
public T(String name,int age){
System.out.println("T(String name,int age)构造器被调用");
System.out.println("name="+name+" age="+age);
}
//成员方法
public void f1(){
String name="xiaogou";
int age=17;
System.out.println("2.调用方法");
System.out.println("方法f1()被调用");
//第一种方法
f2();
//第二种方法:
this.f2();
System.out.println("===============================");
System.out.println("3.调用属性");
System.out.println("name="+this.name+" age="+this.age);
System.out.println("name="+name+" age="+age);
}
public void f2(){
System.out.println("方法f2()被调用");
}
}
如图,若不将调用构造器的语句放在方法的第一条,就会报错
关于我上次的疑问:
进一步理解:
这个两个name 应该都是形参(局部变量)中的name,根据就近原则,和属性中的name 没有关系
一个对象,对应一个类,this在类中的操作就相当于是在给对象操作,也就是:对象是类的实例
练习:
定义Person5类,用compareTo方法比较两者name和age是否相等,用TestPerson类演示
public class TestPerson {
public static void main(String[] args) {
Person5 p1=new Person5("a",10);
Person5 p2=new Person5("a",10);
System.out.println("p1和p2比较的结果 "+p1.compareTo(p2));
}
}
class Person5{
String name;
int age;
public Person5(String name, int age) {
this.name = name;
this.age = age;
}
public boolean compareTo(Person5 p){
return this.name.equals(p.name)&&(this.age==p.age);
}
}
public boolean compareTo(Person5 p){ return this.name.equals(p.name)&&(this.age==p.age); } }
返回值是boolean类型,可以用return来判断
this指的是p1的,p指的是p2的,调用p1对象的compareTo方法来进行比较
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理