二、Java面向对象(7)_封装思想——this关键字

2018-04-30

 

this关键字

 

什么是this:

  表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。

 

this主要存在于两个地方:

  1)构造函数:此时this表示调用当前创建的对象

  2)成员方法中:对象a调用this所在的方法,此时this就表示对象a

 

当一个对象创建以后,JVM会自动分配一个引用当前对象的this

 

内存分析:

  

 

 

 

this的使用:

1)使用this区分同名变量

  成员变量与局部变量(参数),重名时,希望在方法内部调用成员变量

 1 class Person {
 2     private int age = 10;
 3     public Person(){
 4     System.out.println("初始化年龄:"+age);
 5 }
 6     public int GetAge(int age){
 7         this.age = age;
 8         return this.age;
 9     }
10 }
11  
12 public class test1 {
13     public static void main(String[] args) {
14         Person Harry = new Person();
15         System.out.println("Harry's age is "+Harry.GetAge(12));
16     }
17 }  

 

运行结果:

初始化年龄:10
Harry's age is 12

 

可以看到,这里age是GetAge成员方法的形参,this.age是Person类的成员变量。

  

2)作为方法名来初始化对象(构造器重载的方法)

  也就是相当于调用本类的其它构造方法,它必须作为构造方法的第一句。

3)作为参数传递

  需要在某些完全分离的类中调用一个方法,并将当前对象的一个引用作为参数传递时。

 

 

参考:

https://www.cnblogs.com/hasse/p/5023392.html(this和super的用法总结)

http://www.weixueyuan.net/view/5988.html

 

转载于:https://www.cnblogs.com/sunNoI/p/8974459.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习模型 非线性模型_调试机器学习模型的终极指南

机器学习模型 非线性模型You’ve divided your data into a training, development and test set, with the correct percentage of samples in each block, and you’ve also made sure that all of these blocks (specially development and test set) come from the same di…

leetcode 645. 错误的集合

集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出…

Linux环境变量总结

现在每天测试到时候会与Linux打交道,自然也会用到环境变量了。看了网上几篇文章,结合自己到实践和看法,总结以下Linux的环境变量吧。一、什么是环境变量?环境变量相当于给系统或用户应用程序设置的一些参数, 具体起什么作用这当然…

目录指南中的Python列表文件-listdir VS system(“ ls”)通过示例进行解释

🔹欢迎 (🔹 Welcome) If you want to learn how these functions work behind the scenes and how you can use their full power, then this article is for you.如果您想了解这些功能在后台如何工作以及如何充分利用它们的功能,那么本文适合…

Java多线程并发学习-进阶大纲

1、synchronized 的实现原理以及锁优化?2、volatile 的实现原理?3、Java 的信号灯?4、synchronized 在静态方法和普通方法的区别?5、怎么实现所有线程在等待某个事件的发生才会去执行?6、CAS?CAS 有什么缺陷…

大数据定律与中心极限定理_为什么中心极限定理对数据科学家很重要?

大数据定律与中心极限定理数据科学 (Data Science) The Central Limit Theorem is at the center of statistical inference what each data scientist/data analyst does every day.中心极限定理是每个数据科学家/数据分析师每天所做的统计推断的中心。 Central Limit Theore…

useEffect语法讲解

useEffect语法讲解 用法 useEffect(effectFn, deps)能力 useEffect Hook 相当于 componentDidMount,componentDidUpdate 和 componentWillUnmount 这三个函数的组合。 可以模拟渲染后、更新后、销毁三个动作。 案例演示 渲染后更新标题 useEffect(()>{doc…

leetcode 726. 原子的数量

给定一个化学式formula(作为字符串),返回每种原子的数量。 原子总是以一个大写字母开始,接着跟随0个或任意个小写字母,表示原子的名字。 如果数量大于 1,原子后会跟着数字表示原子的数量。如果数量等于 1…

web相关基础知识1

2017-12-13 09:47:11 关于HTML 1.绝对路径和相对路径 相对路径:相对于文件自身为参考。 (工作中一般是使用相对路径) 这里我们用html文件为参考。如果说html和图片平级,那直接使用src 如果说图片在和html平级的文件夹里面&#xf…

JavaScript循环:标签语句,继续语句和中断语句说明

标签声明 (Label Statement) The Label Statement is used with the break and continue statements and serves to identify the statement to which the break and continue statements apply. Label语句与break和continue语句一起使用,用于标识break和continue语…

马约拉纳费米子:推动量子计算的“天使粒子”

据《人民日报》报道,以华人科学家为主体的科研团队找到了正反同体的“天使粒子”——马约拉纳费米子,从而结束了国际物理学界对这一神秘粒子长达80年的漫长追寻。该成果由加利福尼亚大学洛杉矶分校何庆林、王康隆课题组,美国斯坦福大学教授张…

leetcode 1711. 大餐计数

大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。 你可以搭配 任意 两道餐品做一顿大餐。 给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i​​​​​​​​​​​​​​ 道餐品的美味程度,返回你可以用…

您的第一个简单的机器学习项目

This article is for those dummies like me, who’ve never tried to know what machine learning was or have left it halfway for the sole reason of being overwhelmed. Follow through every line and stay along. I promise you’d be quite acquainted with giving yo…

eclipse报Access restriction: The type 'BASE64Decoder' is not API处理方法

今天从svn更新代码之后,由于代码中使用了BASE64Encoder 更新之后报如下错误: Access restriction: The type ‘BASE64Decoder’ is not API (restriction on required library ‘D:\java\jdk1.7.0_45\jre\lib\rt.jar’) 解决其实很简单,把JR…

【跃迁之路】【451天】程序员高效学习方法论探索系列(实验阶段208-2018.05.02)...

(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长实验期2年(2017.10.06 - 2019.10.06)我将以自己为实验对象。我将开源我的学习方法,方法不断…

react jest测试_如何使用React测试库和Jest开始测试React应用

react jest测试Testing is often seen as a tedious process. Its extra code you have to write, and in some cases, to be honest, its not needed. But every developer should know at least the basics of testing. It increases confidence in the products they build,…

面试题 17.10. 主要元素

题目 数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 …

简单团队-爬取豆瓣电影T250-项目进度

本次主要讲解一下我们的页面设计及展示最终效果: 页面设计主要用到的软件是:html,css,js, 主要用的编译器是:sublime,dreamweaver,eclipse,由于每个人使用习惯不一样&…

鸽子为什么喜欢盘旋_如何为鸽子回避系统设置数据收集

鸽子为什么喜欢盘旋鸽子回避系统 (Pigeon Avoidance System) Disclaimer: You are reading Part 2 that describes the technical setup. Part 1 gave an overview of the Pigeon Avoidance System and Part 3 provides details about the Pigeon Recognition Model.免责声明&a…

scrum认证费用_如何获得专业Scrum大师的认证-快速和慢速方式

scrum认证费用A few months ago, I got the Professional Scrum Master Certification (PSM I). 几个月前,我获得了专业Scrum Master认证(PSM I)。 This is a trending certification nowadays, because most companies operate with some sort of agile methodolo…