二、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
二、Java面向对象(7)_封装思想——this关键字相关推荐
- 20175333曹雅坤 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- java面向对象实验结论及心得_20162305 实验二 Java面向对象程序设计 实验报告
20162305 实验二 Java面向对象程序设计 实验报告 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20135234mqy 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1352 姓名:mqy 学号:20135234 成绩: 指导教师:娄嘉 ...
- Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态
面向对象的特征:封装.继承.多态.(抽象) 一.封装 体现形式: 函数 --- 提高代码的复用性. 属性的私有化 --- 将属性设为私有,通过提供对外的访问方法来间接操作对象属性,可以再方法内对属性做 ...
- java面向对象程序_面向对象编程基础(java)
面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...
- Java面向对象程序设计实训教程_JAVA课程实验报告 实验二 JAVA面向对象程序设计...
课程:Java程序设计 班级:1352 姓名:黄伟业 学号:20135315 成绩: 指导教师:娄嘉鹏 实验日期:2015.5.7 实验密级: 预习 ...
- java面向对象编程_包_继承_多态_重载和重写_抽象类_接口_this和super
目录点击跳转 包 包的命名方法 导入包中的类 系统包的介绍 **注意事项** 继承 基础知识 构造方法 **基础语法** `protected`修饰符 组合 `this`和`super`关键字 `th ...
- 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:陈巧然 ...
最新文章
- interrupt分析
- Vue 全家桶 + Express 实现的博客
- Linux下C程序的链接过程
- NET中解决KafKa多线程发送多主题的问题
- Jury Compromise POJ - 1015
- ubuntu11.10 源码编译安装php5.3.8,Ubuntu 11.10编译安装Nginx、PHP 5.3.8、MySQL、MongoDB、Memcached、SSL、SMTP...
- 内连接、左外连接、右外连接、交叉连接区别
- php书签源码,OneNav简约PHP导航书签源码
- Python-Anaconda练习candy算子用于边缘提取,再用hough变换检测直线边缘
- PostgreSQL学习总结(7)—— PostgreSQL 语句 INSERT INTO、SELECT、UPDATE、DELETE 等学习
- sql批量插入防止重复插入_使用SQL批量插入锁定配置
- 为什么外链建设要灵活多变呢?
- 安鸾渗透实战平台--综合渗透--企业网站渗透流程
- Label free定量蛋白质组学
- 解决Worm.Win32.AutoRun.soq 病毒
- matlab时间延迟怎么写,大家帮我看一下这个c_c方法时间延迟的程序运行结果??...
- web前端学习到什么程度可以面试工作
- 从消防水管喝水mysql_再见MYSQL - 06 - 查询性能优化
- GDB多线程调试(调试命令+调试演示)
- Linux上使用docker运行酷Q机器人