小乔注: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有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...
随机推荐
- Spring:Bean生命周期
关于Bean生命周期,我在网上找了两张图: 图1: 图2: 总结起来就是: Bean构建: Bean对象创建 > @Autowired | @Resource> @PostConstruc ...
- Kendo UI使用笔记
1.Grid中的列字段绑定模板字段方法参数传值字符串加双引号: 上图就是个典型的例子,openSendWin方法里Id,EmergencyTitle,EmergencyDetail 三个参数,后两个参 ...
- xamarin android menu的用法
在Android中的菜单有如下几种: OptionMenu:选项菜单,android中最常见的菜单,通过Menu键来调用 SubMenu:子菜单,android中点击子菜单将弹出一个显示子菜单项的悬浮 ...
- Java订单号生成,唯一订单号(日均千万级别不重复)
Java订单号生成,唯一订单号 相信大家都可以搜索到很多的订单的生成方式,不懂的直接百度.. 1.订单号需要具备以下几个特点. 1.1 全站唯一性. 1.2 最好可读性. 1.3 随机性,不能重复,同 ...
- 搜索引擎之全文搜索算法功能实现(基于Lucene)
之前做去转盘网的时候,我已经公开了非全文搜索的代码,需要的朋友希望能够前去阅读我的博客.本文主要讨论如何进行全文搜索,由于本人花了很长时间设计了新作:观点,观点对全文搜索的要求还是很高的,所以我又花了 ...
- 妙味课堂:JavaScript初级--第11课:字符串、查找高亮显示
1.数字字母 Unicode 编码 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content- ...
- Xamarin.Android 引导页
http://blog.csdn.net/qq1326702940/article/details/78665588 https://www.cnblogs.com/catcher1994/p/555 ...
- 一、JavaSE语言概述
1.软件:系统软件 VS 应用软件 2.人与计算交互:使用计算机语言.图形化界面VS命令行. 3.语言的分类:第一代:机器语言 第二代:汇编语言 第三代语言:高级语言(面向过程-面向对象) 4.jav ...
- Python学习_05_条件、循环
条件 和其他语言类似,python中使用if...elif...else来形成分支,支持三目操作符 ?:,python中没有switch,但是缩进的特性让if...elif...else的结构同样便于 ...
- [Android游戏开发]游戏框架的搭建
通常情况下,游戏开发的基本框架中,一般包括以下模块: 窗口管理(Window management):该模块负责在Android平台上创建.运行.暂停.恢复游戏界面等功能. 输入模块(Input):该 ...