this关键字
== 我的疑问:==
当形参名name和类中的名name一样时,
name=name是什么意思
输出的又是哪个name
1.不用this锁出现的问题
指向它,就相当于是它的名字
public class Tis01 {
public static void main(String[] args) {
Dog1 dog=new Dog1("xiaoming",2);
dog.info();
}
}
class Dog1{
public String name;
public int age;
/*
构造器的形参要能直接携程属性名,使代码更好
出现问题:构造器中的name和age指的是形参还是局部变量?
是局部变量,name就只能是null,age就只能是0
-->this的出现
*/
public Dog1(String dname, int dage){
name=dname;
age=dage;
}
//成员变量,输出属性信息
public void info(){
System.out.println(name+" "+age);
}
}
2.每个对象都有一个this
哪个对象调用,this就是哪个对象
解决之后的构造器代码:
public Dog1(String name, int age){ //this.name是当前对象的属性name this.name=name; //this.age是当前对象的属性age this.age=age; }
hashCode()是将地址转化为整数
public class Tis01 {
public static void main(String[] args) {
Dog1 dog=new Dog1("xiaoming",2);
dog.info();
System.out.println("dog.hashCode()="+dog.hashCode());
Dog1 dog1=new Dog1("xiaoli",1);
dog1.info();
System.out.println("dog1.hashCode()="+dog1.hashCode());
}
}
class Dog1{
public String name;
public int age;
/*
构造器的形参要能直接携程属性名,使代码更好
出现问题:构造器中的name和age指的是形参还是局部变量?
是局部变量,name就只能是null,age就只能是0
-->this的出现
*/
public Dog1(String name, int age){
this.name=name;
this.age=age;
}
//成员变量,输出属性信息
public void info(){
System.out.println(name+" "+age);
System.out.println("this.hashCode()="+this.hashCode());
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理