小乔注:java关键字this
java中当一个对象创建后,java虚拟机就会给这个对象分配一个指向自己的指针,称为this。this随实例化对象而产生,因此this只用于非静态方法体内。主要有以下四点应用:
1.调用当前类的成员变量。如:this.name;//访问本类中的成员变量name
2.调用当前类的成员方法。如:this.fun(params...);//访问本类中参数为params...的成员方法fun
3.表示当前类对象的引用。如:return this;//返回当前类对象的值
4.在当前类的构造方法中调用本类的其他构造方法。如:this(params...);//调用本类中参数为params...的构造方法
下面一一附代码说明:
1.
public class Student {
String name;
private void SetName(String name){
this.name=name;
}
}
如上述代码,若局部变量与成员变量同名时,便显示出了this的作用。this关键字引用的便是成员变量,一目了然,便是将形参name赋给了成员变量name
public class Student {
private void out1(){
System.out.print("123");
}
private void out2(){
this.out1();
}
}
如上述代码,out2()方法中利用this关键字调用了成员方法out1();需要注意的是,this关键字访问类的成员变量和成员函数时不受访问权限的控制,可以访问本类中包括private修饰的所有成员变量和方法。也可以通过this访问本类的static成员,不过由于static成员可以通过类名直接访问,如果通过this来访问会有警告信息。
3.
public class Student {
private String name;
public Student setName(String name){
this.name=name;
return this;
}
}
如上述代码,调用setName方法后,将形参赋给成员变量后,return this表示返回了Student对象引用。注意,return this返回的是调用this所处方法的那个对象的引用。切勿混淆。
4.
public class Student {
private String name;
private char sex;
public Student(){
this('男');
this.name = "周瑜";
}
public Student(char sex){
this.sex=sex;
}
}
如上述代码,其中this('男')就是在第一个构造方法中调用了第二个构造方法,即没有参数的那个调用了有参数的那个。需要注意到是,其只能放在该构造方法体内的第一行,且不支持递归调用,即不能间接或直接地调用本身。
大乔注:若该类有派生类,则类中出现的关键字this的作用需注意:
1.在调用成员方法时,如果该方法被子类重写,则调用的是子类的成员方法,未被重写,则调用父类的成员方法。
2.return this中的this始终代表的是子类对象的引用。
3.调用成员变量和构造方法时,均是父类本类的,并无变化。
小乔注:java关键字this的更多相关文章
- Java关键字和基础问题
1. Java关键字 1.1 extends和implements extends继承普通class或abstract(抽象)类(java单继承) implements多继承能力,实现interfac ...
- java 关键字与保留字
Java 关键字列表 (依字母排序 共51组),所有的关键字都是小写,在MyEclipse中都会显示不同的颜色: abstract, assert,boolean, break, byte, case ...
- Java关键字final、static
一.final根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final ...
- java笔记——Java关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- Java关键字
Java关键字简介 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public 公共的 类.方法和变量修饰符 abstract 声明抽象 class 类 exte ...
- 【转】Java关键字final、static使用总结
转自:http://lavasoft.blog.51cto.com/62575/18771/ Java关键字final.static使用总结 一.final 根据程序上下文环境, ...
- Java关键字this、super使用总结
版权声明:原创作品,如需转载,请与作者联系.否则将追究法律责任. 作者:熔岩日期:2007-03-01MSN :leizhimin@126.com声明:原创作品,未经授权,谢绝转载! 好久没有对所学知 ...
- Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...
- Java关键字总结及详解
Java关键字是Java的保留字,这些保留字不能用来作为常量.变量.类名.方法名及其他一切标识符的名称. 一.基本数据类型 Java中有八种基本数据类型,六种数字类型(四个整数型.六中浮点型),一种字 ...
- 转!Java关键字final、static使用总结
Java关键字final.static使用总结 一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...
随机推荐
- 切换用户,显示用户名, 调用Windows系统命令
CONN 用户名/密码 CONN sys/密码 AS SYSDBA | SYSOPER SHOW USER SELECT * FROM 用户名.表名; 调用Windows系统命令: HOST Wind ...
- SPARQL查询语言
SPARQL的查询是基于结构化知识的,变无序数据为有序知识,让计算机理解Web信息,即语义Web.现如今,语义网适用于各个领域,包括语义出版.语义知识库等.SPARQL是针对以RDF框架进行存储的知识 ...
- iOS 网络监听、判断
一 网络监听 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary ...
- Wincc flexable的数据记录的组态
1.数据记录就是将PLC采集的数据记录下来如下,注意只有TP270和OP270以上的HMI设备才有数据记录 2.练习展示 3.开始创建数据记录 4.组态数据记录 5.组态变量的记录属性.将数据记录和变 ...
- arcgis api for js热力图优化篇-不依赖地图服务
前面我写过一篇文章,介绍如何实现arcgis api的热力图效果,但是依赖arcgis server发布的地图服务来获取热力图的数据源.实际应用中,很多业务数据来源数据库,并不一定是从地图服务来获取的 ...
- 基于Vue的SPA动态修改页面title的方法
最近基于VUE做个SPA手机端web发现动态修改页面标题通过document.title=xxxx 来修改着实蛋疼,而且在IOS的微信端据说没效果.百度发现要针对IOS的微信做点额外的操作,即:创建一 ...
- 程序员的自我救赎---11.4:FileSystem文件服务
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- SpringMVC底层数据传输校验的方案(修改版)
团队的项目正常运行了很久,但近期偶尔会出现BUG.目前观察到的有两种场景:一是大批量提交业务请求,二是生成批量导出文件.出错后,再执行一次就又正常了. 经过跟踪日志,发现是在Server之间进行jso ...
- 模板引擎(smarty)知识点总结II
今天咱们继续来学习smarty!!! 知识点1:对于三种变量 常量的引用 有哪三种变量?a.assign赋值 b.系统保留变量(包括:$smarty.get,$smarty.post,$smarty. ...
- 几个关于js数组方法reduce的经典片段
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘. javascript数组那么多方法,为什么我要 ...