首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:面向对象思想概述
第二章:类和对象
第三章:类的定义
第四章:对象的创建和使用
第五章:关键字 package 和 import
第六章:类的成员之一:属性
第七章:类的成员之二:方法
第八章:可变参数
第九章:方法重载( overload )
第十章:方法的值传递机制
第十一章:递归
第十二章:对象数组
第十三章:OOP特征之一:封装
第十四章:类的成员之三:构造器
第十五章:JavaBean
第十六章:关键字 this
当前位置:
首页>>
技术小册>>
Java语言基础5-面向对象初级
小册名称:Java语言基础5-面向对象初级
16.1 概述 - 在 Java 中,this 关键字比较难理解,它的作用和其词义比较接近: - ① 它在方法内部使用,表示这个方法所属对象的引用。 - ② 它在构造器内部使用,表示该构造器正在初始化的对象。 - this 可以调用类的属性、方法和构造器。 - 当在方法内部需要用到调用该方法的对象是,就需要使用 this ,具体来说,就是用 this 来区分 属性 和 局部变量 。 16.2 this调用属性和方法 - ① 在任意方法或构造器内,如果使用当前类的成员变量或成员方法可以在前面添加 this ,增强程序的阅读性。不过,通常情况下,我们都习惯省略 this 。 - ② 当形参和成员变量同名的时候,如果在方法内部或构造器内部需要使用成员变量,必须添加 this 来表明该变量是类的成员变量。 - ③ 使用 this 访问属性和方法时,如果在本类中没有找到,会从父类中查找。 - 示例: ```bash package com.thisdemo; /** * @author maxiaoke.com * @version 1.0 */ public class Person { /** * 姓名 */ private final String name; /** * 年龄 */ private final int age; /** * 构造方法 * * @param name 姓名 * @param age 年龄 */ public Person(String name, int age) { this.name = name; this.age = age; } /** * 获取信息 */ public void getInfo() { System.out.println("姓名:" + this.name); this.speak(); } /** * 说话 */ private void speak() { System.out.println("年龄:" + this.age); } } ``` 16.3 this调用本类的构造器 - this 可以作为一个类中构造器相互调用的特殊格式。 - 示例: ```bash package com.thisdemo2; /** * @author maxiaoke.com * @version 1.0 */ public class Person { /** * 姓名 */ private String name; /** * 年龄 */ private int age; /** * 无参构造器 */ public Person() { System.out.println("无参构造器"); } public Person(String name) { this(); // 调用本类的无参构造器 this.name = name; } public Person(String name, int age) { this(name); // 调用一个参数的构造器 this.age = age; } /** * 获取信息 * * @return {@link String} */ public String getInfo() { return "姓名:" + this.name + ",年龄:" + this.age; } } ``` 16.4 注意事项 - ① 可以在类中的构造器中使用 this(形参列表) 的方式,调用本类中重载的其它的构造器。 - ② 构造器中不能使用 this(形参列表) 的方式调用自身构造器。 - ③ 如果一个类中声明了 n 个构造器,则最多有 n-1 个构造器中使用了 this(形参列表) 。 - ④ this(形参列表) 必须声明在类的构造器的首行。 - ⑤ 在类的构造器中,最多只能声明一个 this(形参列表) 。
上一篇:
第十五章:JavaBean
该分类下的相关小册推荐:
Java语言基础6-面向对象高级
Java必知必会-JDBC
Mybatis合辑5-注解、扩展、SQL构建
SpringBoot合辑-高级篇
Mybatis合辑1-Mybatis基础入门
Mybatis合辑2-Mybatis映射文件
Java语言基础16-JDK8 新特性
Java语言基础8-Java多线程
Java语言基础3-流程控制
Mybatis合辑4-Mybatis缓存机制
Java语言基础7-Java中的异常
Java语言基础9-常用API和常见算法