首页 > 其他分享 >this关键字

this关键字

时间:2024-11-20 23:07:05浏览次数:1  
标签:name stu 狂鸭 打印 关键字 地址 变量

1.问题

如图,我们定义了成员变量name,又写了一个方法sayhello,里面的形参之前说过本质也是一个变量,即是局部变量,也叫name。

这时,我们给成员变量赋值为钢门吹雪,局部变量是西域狂鸭,我们输出name,得到的是哪个名字?

答案是西域狂鸭,原因有两点,第一点java中存在就近原则,我们调用sayhello方法时,西域狂鸭离方法近,所以优先打印西域狂鸭。

第二点,我们并没有打印成员变量,而是只给了成员变量赋值,所以打印的肯定只有西域矿鸭


2.那如果我们就不想直接打印成员变量而要通过方法中的name打印出钢门吹雪呢?

这时就可以使用this关键字,this关键字可以区分成员变量和局部变量的重名


3.this关键字的作用和省略规则


.

4.this的介绍

1.代表地址

如图

之前我们直接打印对象的时候出现的是地址,这里我们直接打印this发现出现的也是地址,并且和对象的地址一模一样,说明,this就是对象的地址。

2.谁调用this,this就代表谁


如图,stu1和stu2都调用了print,this分别打印了stu1和stu2的地址

.

5.this内存图

https://kdocs.cn/l/cuQvFYJirzaR?linkname=150996219

主方法进栈,有new进堆,空间中还存在this。

调用sayhello方法,方法中的形参也是变量,并且是局部变量。你给我什么,我就有什么,所以局部变量的name记录到西域狂鸭。

调用sayhello的是stu,所以把stu写上,打印西域狂鸭。

接着往下走,碰到this,之前说过,哪一个对象调用方法,方法中的this就代表哪一个对象的地址,所以方法中的this代表的是stu,this.name也就可以理解为stu.name,根据stu的地址找到name打印了钢门吹雪

6.总结

标签:name,stu,狂鸭,打印,关键字,地址,变量
From: https://www.cnblogs.com/zhishi6/p/18559593

相关文章

  • linux命令head,tail查询日志头部和尾部 & 查询日志的关键字的上下文日志方法
    linux命令head,tail查询日志头部和尾部&查询日志的关键字的上下文日志方法tail-n10test.log查询日志尾部最后10行的日志;tail-n-10test.log查询日志尾部最后10行的日志;同上tail-n+10test.log查询10行之后的所有日志;tail尾部,倒着数是负数。配置的是正数的话,则......
  • extern关键字
    当然,这里有一个使用extern关键字的简单例子,它涉及一个全局变量和函数。假设我们有两个源文件:main.c和math_functions.c,以及一个头文件math_functions.h。math_functions.h(头文件):#ifndefMATH_FUNCTIONS_H#defineMATH_FUNCTIONS_H//声明一个全局变量,使用extern关键字......
  • MySQL-关键字执行顺序
    ......
  • 淘宝商品爬虫:PHP实现关键字搜索
    在数字化时代,网络购物已成为我们生活的一部分。淘宝,作为中国最大的电商平台之一,拥有海量的商品信息。对于开发者来说,如何从这些信息中快速准确地获取所需商品,成为了一个值得探讨的问题。本文将介绍如何使用PHP编写一个简单的淘宝商品爬虫,通过关键字搜索来获取商品信息。环境准......
  • Rust impl关键字(实现封装、继承和多态等功能)(Rust关联类型、impl关联类型、Rust静态方
    文章目录Rust中的`impl`关键字详解什么是`impl`关键字?`impl`的基本语法示例:为结构体实现方法`impl`与特征(Trait)(为类型实现通用接口)示例:为类型实现特征`impl`与关联类型(关联类型使得在特征中定义的一些类型可以在实现时具体化)示例:使用关联类型`impl`与静态方法(不带self......
  • 【JAVA】Java基础—面向对象编程:类的其他特性—static 关键字的使用
    在Java编程中,static关键字是一个非常重要的概念,它用于定义类级别的成员,而不是实例级别的成员。理解static的使用对于编写高效、清晰和可维护的代码至关重要。在实际开发中,static关键字通常用于创建工具类、常量、单例模式以及共享数据等场景。理论知识1.static变量静态变......
  • C/C++ 知识点:extern 关键字
    文章目录一、extern关键字1、什么是extern?2、基本用法2.1、声明全局变量2.2、声明函数2.3、使const变量具备外部连接性3、`extern"C"`特殊用途3.1、C调用C++3.2、C++调用C4、注意事项5、总结前言:在C和C++编程语言中,extern关键字扮演着连接不同源文件(或称为翻......
  • volatile关键字最全原理剖析
    介绍volatile是轻量级的同步机制,volatile可以用来解决可见性和有序性问题,但不保证原子性。volatile的作用:保证了不同线程对共享变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。禁止进行指令重排序。底层原理内存屏障vo......
  • 构造方法,static,final关键字,字符串拼接,基本数据类型、包装类转String,String转基本
    1.构造方法的特点1.每一个类都至少有一个构造方法,默认是无参的构造方法。一旦写了有参的构造方法,那么无参的构造方法就丢失了,需要自己显式的写出无参构造方法。一般只要是显式写出构造方法,无参的构造方法是必须要构造的。2、构造方法,方法名必须和类名保持一致,并且没有返回值,......
  • 类中的关键字
    1.this和super1.1thisthis代表当前对象的一个引用可以调用类的属性、构造函数、方法,分别是:this.属性名this(参数)this.方法名(参数)应用场景:方法中有和类属性重名的变量,可使用this.属性名代指类变量注意:①构造函数中this(参数)必须写在第一行,且this(参数)和super(参数)......