javaSE-关键字this-super
一、this关键字:
- “this(实际参数列表)”出现在构造方法第一行,通过当前的构造方法去调用本类当中其它的构造方法。其目的是为了代码复用。
- this不能使用在static的方法中
- this出现在实例方法中,谁调用这个实例方法,this就代表谁,this代表当前正在执行这个动作的对象。
- this可以看做一个变量,它是一个引用,存储在Java虚拟机"堆"内存的对象内部,this这个引用保存了当前对象的内存地址指向自身
- this大部分情况下可以省略,在方法中区分实例变量和局部变量的时候不能省略。
public class Date { private int year; private int month; private int day; //业务要求,默认创建的日期为1970年1月1日 public Date(){ this.year = 1970; this.month = 1; this.day = 1; } public Date(int year,int month,int day){ this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } }
二、关键字super:
- super不能出现在静态方法中。
- “super(实际参数列表);”语法表示调用父类的构造方法,代码复用性增强了,完成当前对象的父类型特征的初始化操作。
- super(实际参数列表) 这行代码和 “this(实际参数列表)” 都是只允许出现在构造方法第一行,所以这两行代码是无法共存的。
- super的使用:
- super.属性名 【访问父类的属性】
- super.方法名(实参) 【访问父类的方法】
- super(实参) 【调用父类的构造方法】
public class People { String idCard; String name; boolean sex;
//无参构造 public People(){ } //父类构造方法 public People(String idCard,String name,boolean sex){ this.idCard = idCard; this.name = name; this.sex = sex; } }
public class Student extends People{
//学号是子类特有的 int sno;
//无参数构造 public Student(){ } //子类构造方法使用super(实际参数列表) 实现代码复用 public Student(String idCard,String name,boolean sex,int sno){ super(idCard,name,sex); this.sno = sno; } }
//测试 public class StudentTest { public static void main(String[] args) { Student s = new Student("12345x","jack",true,100); System.out.println("身份证号" + s.idCard); System.out.println("姓名" + s.name); System.out.println("性别" + s.sex); System.out.println("学号" + s.sno); } } //输出结果: // 身份证:12345x //姓名:jack //性别:true //学号:100 //
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix