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币余额
- 我的收藏
- 我的下载
- 下载帮助