java中this与super关键字的使用方法
文件大小: 61k
源码售价: 10 个金币 积分规则     积分充值
资源说明:在Java编程语言中,`this` 和 `super` 是两个非常重要的关键字,它们在处理类的继承关系时起到关键作用。下面将详细解释这两个关键字的使用方法和它们的区别。 `this` 关键字: 1. **普通直接引用**: `this` 在代码中可以直接用来引用当前对象的成员变量或方法,尤其是在方法内部,当局部变量和成员变量名字相同时,通过 `this` 可以明确区分。例如: ```java class Person { private int age = 10; public Person() { System.out.println("初始化年龄:" + age); } public int getAge(int age) { this.age = age; // 指向成员变量age return this.age; } } ``` 2. **形参与成员名字重名**: 当类的方法参数与类的成员变量名称相同,`this` 用于区分它们。如上例的 `getAge` 方法中,`this.age` 代表的是实例变量,而非方法参数。 3. **引用构造函数**: 在同一个类的构造函数中,可以通过 `this` 引用其他构造函数。这允许你在多个构造函数之间共享代码,避免重复。例如: ```java class Person { public Person() { this("未命名"); } public Person(String name) { // 共享代码 } } ``` 接下来,`super` 关键字: 1. **普通直接引用**: 类似于 `this`,`super` 关键字用于引用当前对象的父类。你可以使用 `super.xxx` 来访问父类的成员。比如: ```java class Country { String name; void value() { name = "China"; } } class City extends Country { String name; void value() { name = "Shanghai"; super.value(); // 调用父类方法 System.out.println(name); System.out.println(super.name); } } ``` 2. **子类与父类成员重名**: 如果子类中有一个成员变量或方法与父类的同名,`super` 可以用来明确调用父类的成员。如上面的 `City` 类的 `value` 方法中,`super.value()` 调用了父类的 `value` 方法。 3. **引用构造函数**: `super` 关键字还可以用来调用父类的构造函数,必须作为构造函数内的第一条语句。例如: ```java class Person { public Person() { System.out.println("父类·无参数构造方法: A Person."); } public Person(String name) { System.out.println("父类·含一个参数的构造方法: A person's name is " + name); } } class Chinese extends Person { public Chinese() { super(); // 调用父类的无参数构造方法 System.out.println("子类·调用父类”无参数构造方法“: A chinese coder."); } public Chinese(String name) { super(name); // 调用父类的含一个参数的构造方法 System.out.println("子类·调用父类”含一个参数的构造方法“: his name is " + name); } } ``` 总结来说,`this` 关键字主要用于当前类的成员访问和构造函数调用,而 `super` 关键字则用于引用父类的成员和调用父类的构造函数。在编写面向对象程序时,理解并熟练运用这两个关键字,能够帮助我们更好地组织和管理代码,实现灵活的类继承关系。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。