### Java中各种关键字的作用及区别 #### 一、`this`关键字 - **定义与作用**: - `this`关键字在Java中用于指代当前对象。它可以在类的内部帮助区分成员变量与局部变量(尤其是当它们同名时),以及调用当前对象的其他方法。 - **用法举例**: 1. **明确引用对象的变量或方法**: - 当在一个类中定义了同名的局部变量和成员变量时,可以通过`this`来明确地访问成员变量。例如,在构造函数中,若有一个局部变量与类的成员变量同名,则可以直接通过`this.变量名`来访问成员变量。 ```java public class Example { String s = "Hello"; public Example(String s) { System.out.println("s = " + s); System.out.println("1 -> this.s = " + this.s); this.s = s; System.out.println("2 -> this.s = " + this.s); } public static void main(String[] args) { new Example("HelloWorld!"); } } ``` 输出结果: ``` s = HelloWorld! 1 -> this.s = Hello 2 -> this.s = HelloWorld! ``` 2. **传递当前对象作为参数**: - 可以将当前对象作为参数传递给另一个对象。这通常用于对象之间的通信。 ```java public class A { public A() { new B(this).print(); } public void print() { System.out.println("Hello from A!"); } } public class B { A a; public B(A a) { this.a = a; } public void print() { a.print(); System.out.println("Hello from B!"); } } ``` 输出结果: ``` Hello from A! Hello from B! ``` 3. **内部类和匿名类中的使用**: - 在内部类或匿名类中使用`this`时,通常指的是该内部类或匿名类自身。若需访问外部类的成员,则需要显式地使用`外部类名.this`的形式。 ```java public class A { int i = 1; public A() { Thread thread = new Thread() { public void run() { for(;;) { A.this.run(); try { Thread.sleep(1000); } catch(InterruptedException ie) { } } } }; thread.start(); } public void run() { System.out.println("i = " + i); i++; } } ``` #### 二、`super`关键字 - **定义与作用**: - `super`关键字用于指代当前对象的父类对象。它主要用于子类中调用父类的构造函数、方法或访问父类的属性。 - **用法举例**: 1. **子类构造函数中调用父类构造函数**: - 在子类的构造函数中,如果希望调用父类的构造函数,可以使用`super()`语句。需要注意的是,`super()`必须是子类构造函数中的第一条语句。 ```java class Base { Base() { System.out.println("Base"); } } public class Child extends Base { Child() { super(); // 调用父类的构造函数 System.out.println("Child"); } } ``` 输出结果: ``` Base Child ``` 2. **子类方法中调用父类方法**: - 在子类的方法中,可以使用`super.方法名`来调用父类中的方法。 ```java class Parent { void display() { System.out.println("Parent's display"); } } public class Child extends Parent { @Override void display() { super.display(); // 调用父类的display方法 System.out.println("Child's display"); } } ``` 输出结果: ``` Parent's display Child's display ``` 总结来说,`this`关键字主要用于引用当前对象自身,而`super`关键字则用于引用当前对象的父类对象。这两种关键字都是Java编程中非常重要的概念,正确理解并运用它们对于编写高质量的面向对象程序至关重要。
剩余17页未读,继续阅读
- 粉丝: 101
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 本资源库是关于“Java Collection Framework API”的参考资料,是 Java 开发社区的重要贡献,旨在提供有关 Java 语言学院 API 的实践示例和递归教育关系 .zip
- 插件: e2eFood.dll
- 打造最强的Java安全研究与安全开发面试题库,帮助师傅们找到满意的工作.zip
- (源码)基于Spark的实时用户行为分析系统.zip
- (源码)基于Spring Boot和Vue的个人博客后台管理系统.zip
- 将流行的 ruby faker gem 引入 Java.zip
- (源码)基于C#和ArcGIS Engine的房屋管理系统.zip
- (源码)基于C语言的Haribote操作系统项目.zip
- (源码)基于Spring Boot框架的秒杀系统.zip
- (源码)基于Qt框架的待办事项管理系统.zip