Java 中 this 与 super 的用法 Java 中的 this 和 super 是两个非常重要的关键字,它们都是用来访问对象或父类的成员变量或方法的。下面我们将详细地讲解它们的用法和区别。 让我们来看一下 this 关键字。this 关键字是用来访问当前对象的成员变量或方法的。例如,在某个方法中,如果有一个形参名与当前对象的某个成员变量同名,我们需要使用 this 关键字来明确地指定我们要访问的成员变量。例如: ```java public class DemoThis { private String name; private int age; DemoThis(String name, int age) { this.name = name; this.age = age; } } ``` 在上面的代码中,我们使用 this 关键字来访问当前对象的 name 和 age 成员变量。如果我们不使用 this 关键字,编译器将不知道我们要访问哪个变量。 此外,this 关键字也可以用来调用当前对象的其他构造函数或方法。例如: ```java public class DemoThis { private String name; private int age; DemoThis(String name, int age) { this(name); this.age = age; } DemoThis(String name) { this.name = name; } } ``` 在上面的代码中,我们使用 this 关键字来调用当前对象的另一个构造函数。 现在,让我们来看一下 super 关键字。super 关键字是用来访问父类的成员变量或方法的。例如: ```java public class Person { public int c; private String name; private int age; protected void setName(String name) { this.name = name; } protected void setAge(int age) { this.age = age; } protected void print() { System.out.println("Name=" + name + " Age=" + age); } } public class DemoSuper extends Person { public void print() { System.out.println("DemoSuper:"); super.print(); } } ``` 在上面的代码中,我们使用 super 关键字来访问父类的 print 方法。super 关键字可以用来访问父类的任何成员变量或方法。 在构造函数中,this 和 super 关键字也可以被使用。例如: ```java public class Person { public Person() { this.pr(); } protected void pr() { System.out.println("A Person."); } } ``` 在上面的代码中,我们使用 this 关键字来调用当前对象的 pr 方法。 this 关键字是用来访问当前对象的成员变量或方法的,而 super 关键字是用来访问父类的成员变量或方法的。我们需要根据实际情况来选择使用 this 或 super 关键字。 让我们来看一下代码示例: ```java public class DemoThis { private String name; private int age; DemoThis(String name, int age) { this(name); this.age = age; } DemoThis(String name) { this.name = name; } public void print() { System.out.println("Name=" + name + " Age=" + age); } public static void main(String[] args) { DemoThis dt = new DemoThis("Kevin", 22); dt.print(); } } public class DemoSuper extends Person { public void print() { System.out.println("DemoSuper:"); super.print(); } public static void main(String[] args) { DemoSuper ds = new DemoSuper(); ds.setName("Kevin"); ds.setAge(22); ds.print(); } } ``` 在上面的代码中,我们使用 this 和 super 关键字来访问当前对象和父类的成员变量或方法。
- 粉丝: 16
- 资源: 57
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 没用333333333333333333333333333333
- 基于Vue和SpringBoot的企业员工管理系统2.0版本设计源码
- 【C++初级程序设计·配套源码】第2期-基本数据类型
- 基于Java和Vue的kopsoftKANBAN车间电子看板设计源码
- 影驰战将PS3111 东芝芯片TT18G23AIN开卡成功分享,图片里面画线的选项很重要
- 【C++初级程序设计·配套源码】第1期-语法基础
- 基于JavaScript、CSS、HTML的简易DOM版飞机游戏设计源码
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量