Java this 和 super 代码实例及使用方法总结 Java 编程语言中,this 和 super 是两个非常重要的关键字,这两个关键字在面向对象编程中扮演着非常重要的角色。下面我们将详细介绍 Java 中 this 和 super 的用法。 一、this 关键字 this 关键字在 Java 中是指向当前对象本身的指针,可以理解为指向对象本身的一个指针。this 的用法在 Java 中大体可以分为三种: 1. 普通的直接引用:this 相当于是指向当前对象本身。 2. 形参与成员名字重名,用 this 来区分:在方法中,如果形参和成员变量同名,可以使用 this 来区分。 例如: ```java package com.demo; public class Person { private int age = 10; public Person(){ System.out.println("初始化年龄:"+age); } public int GetAge(int age){ this.age = age; return this.age; } } package com.demo; public class Test1 { public static void main(String[] args) { Person Harry = new Person(); System.out.println("Harry's age is "+Harry.GetAge(12)); } } ``` 在上面的代码中,我们使用 this 来区分形参和成员变量。 二、super 关键字 super 关键字可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。super 也有三种用法: 1. 普通的直接引用:super 相当于是指向当前对象的父类,这样就可以用 super.xxx 来引用父类的成员。 2. 子类中的成员变量或方法与父类中的成员变量或方法同名:在子类中,如果成员变量或方法与父类中的成员变量或方法同名,可以使用 super 来调用父类的成员。 例如: ```java package com.demo; public class Country { String name; void value() { name = "China"; } } package com.demo; public class City extends Country{ String name; void value() { name = "Shanghai"; super.value(); // 调用父类的方法 System.out.println(name); System.out.println(super.name); } public static void main(String[] args) { City c = new City(); c.value(); } } ``` 在上面的代码中,我们使用 super 来调用父类的方法和变量。 3. 引用构造函数:super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。 例如: ```java package com.demo.test; public class Person { public static void prt(String s) { System.out.println(s); } Person() { prt("父类·无参数构造方法: " + "A Person."); } Person(String name) { prt("父类·含一个参数的构造方法: " + "A person's name is " + name); } } package com.demo.test; public class Chinese extends Person { Chinese() { super(); // 调用父类构造方法(1) prt("子类·调用父类“无参数构造方法“: " + "A chinese coder."); } Chinese(String name) { super(name); // 调用父类具有相同形参的构造方法(2) prt("子类·调用父类”含一个参数的构造方法“: " + "his name is " + name); } Chinese(String name, int age) { // ... } } ``` 在上面的代码中,我们使用 super 来调用父类的构造函数。 this 和 super 是 Java 中两个非常重要的关键字,它们都是指向对象本身或父类对象的指针。通过使用 this 和 super,我们可以更方便地访问和操作对象的成员变量和方法。
- 粉丝: 3
- 资源: 958
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 博思智联-三联集团-新乡连锁店培训流程说明.doc
- 博思智联-三联集团-职位评估培训.ppt
- 博思智联-三联集团-新乡培训流程说明.doc
- Delphi编程-Oracle-控件-delphi连接Oracle数据库控件
- mysql安装配置教程.txt
- 泛华-中国青年报项目—岗 位 描 述 书培训模搬.doc
- 和君创业—上海西域酒业项目培训—培训计划2.doc
- 和君创业—上海西域酒业项目培训—培训小结(提要)学员使用.doc
- 和君创业—上海西域酒业项目培训—业务员培训资料目录.doc
- 基于antlr4 解析器,支持spark sql, tidb sql, flink sql, Sparkflink jar 运行命令解析器详细文档+全部资料.zip
- 毕业设计:基于MQTT的物联网设备接入平台、使用Flink流处理框架详细文档+全部资料.zip
- 基于 SSM 框架,Flink 流,MySQL 数据库、BS 架构的小说网站详细文档+全部资料.zip
- 基于docker的实时监控系统,详细文档+全部资料.zip
- 基于Bilibili公开的数据,通过Flink实时分析计算,做成需要的动态图表详细文档+全部资料.zip
- IMG_20241218_182829.jpg
- 华彩--三鼎控股—华鼎锦纶子集团培训管理办法--外派培训9.27.doc