this关键字和构造方法
this关键字
this代表当前类的引用对象
class User{ private String username; public void setUsername(String username) {
username =username;
}
public String getUsername() {
return username;
}
}
public static void main(String[] args) { User user = new User(); user.setUsername("张三"); System.out.println(user.getUsername()); }
运行结果:
在这个程序中运行结果为null,证明没有获取传递的值,
在调用setUsername的时候成员变量和局部变量名称相同,
成员变量没有获取到对应的值。
public void setUsername(String username) { this.username = username; }
当使用this关键字后就可以让成员变量获取到传递的值
运行结果:
为什么要使用this关键字:
1、成员变量和局部变量重名
2、创建任意一个对象默认都会创建一个this引用的指向同一个堆区空间
3、this的设计相识于生活中的代词:我的
4、默认一个类的成员省略掉this关键字
5、this只能出现在类的内部
this的本质就是一个对象,引用,实例,变量。只不过和创建的对象指向了同一个块堆区的空间,
使用this对堆的空间做了修改那么—样会修改对象本身。
应用场景:
1.当成员变是和局部变量重名的情况
2.当需要在类的内部访问本类的成员(成员变量和成员方法)
3.this访问本类的构造方法的时候
构造方法
如果成员变量太多,通过set方法来进行赋值太麻烦,这个时候就需要填写构造方法
class Admin{
private String name;
private int age;
private String sex;
//无参构造
public Admin() {
}
//有参构造
public Admin(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
如果不添加构造方法那么系统就会自动给我们提供一个无参构造方法,
当我们填写有参构造方法后,那么系统默认的无参构造方法就会失效,
所以当填写有参构造后还须填写无参构造方法。
public static void main(String[] args) { Admin admin = new Admin(); }
运行结果:
当我们没有给对象进行赋值时,那么无参构造方法就会默认执行
同样我们也可以使用有参构造方法进行赋值
public static void main(String[] args) { Admin admin = new Admin("张三",18,"男"); }
构造方法的作用:
能够在对象创建之后对对象的成员变量快速的赋值
构造方法的特点:
1.构造方法没有返回值,连void关键字也没有
2.方法名必须和类名相同
3.方法体一般都是用来给成员变量赋值的
4.如果我们没有自己添加构造方法,系统会默认给我们提供一个无参的构造方法
5.如果我们自己添加了构造方法,那么会覆盖掉系统提供的默认的构造方法
6.构造方法可以重载
7.可以通过this关键来实现构造器相互之间的调用,但是只能放置在构造方法的第一行
同样也可以使用this关键字来进行调用无参构造方法
//有参构造 public Admin(String name, int age, String sex) { this(); this.name = name; this.age = age; this.sex = sex; }
public static void main(String[] args) {
Admin admin = new Admin("张三",18,"男");
}
那么在调用有参构造方法的时候就会连同无参构造方法一起执行
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix