java中的this关键字的应用场景(含代码例子)

简介: 为什么要用this关键字?答案:可以解决成员变量和局部变量重名不知道调用谁的问题

为什么要用this关键字?

答案:可以解决成员变量局部变量重名不知道调用谁的问题

有this和没有this区别:

答案:没有this就采用就近原则,谁近就用谁。有this后,就调用本类中的成员变量或者本类中的方法

三大应用场景:

1.this调用本类成员变量

2.this可以调用本类中的其他方法

3.this调用本类中的其他构造方法,调用时要放在构造方法的首行

使用禁忌:

1.this不能出现在static修饰的方法中
2.this只能在类中的方法内部使用

代码例子:

类(被调用者):

package three;
//定义了两个baby变量进行测试
public class Girl {
    String baby = "御姐";//成员变量baby
    public void test1() {//第一个方法
        String baby = "甜妹";//局部变量baby
        //输出对比
        System.out.println(baby);//没有this:就近原则,甜妹
        System.out.println(this.baby);//使用场景1:有this调用本类成员变量,御姐
        this.test2();//使用场景2:this调用本类其他方法,调用了test2,男人波塞冬
    }
    public void test2() {//第二个方法
        System.out.println("男人波塞冬");
    }
}

对象(调用类) :

 package three;
 public class Girlfriend {
     public static void main(String[] args) {
         Girl girl = new Girl();//1.new调用工具类Girl
         //因为那边主类的public class不给调用,只能调用Gril中的test方法
         girl.test1();//输出test方法
    }
 }

运行结果:

甜妹

御姐

男人波塞冬

成员变量和局部变量区别:

成员变量:在public class本类里面的变量

局部变量:在public class本类中的方法里面的变量

题外话:

this关键字在里面还包括成员变量和局部变量知识点

还有类和对象的调用知识点

如果实在记不住相同的名字调用就想着this就是要调用距离远的


目录
相关文章
|
2月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
354 5
|
2月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
263 3
|
3月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
436 3
|
3月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
314 3
|
3月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
794 0
|
3月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
211 3
|
2月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
253 115
|
2月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
182 98
|
3月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
413 0