this 是Java 中常见的一个关键字,它的主要作用是引用类的当前实例,本篇文章主要介绍 this 关键字的几种使用情况。

1. this 调用当前类的变量,也就是类中的成员变量。

代码示例:

public class Student {

    private String name="张三";

    public void testName(String name){
System.out.println("局部变量name的值为:" + name);
System.out.println("成员变量name的值为:" + this.name);
} }
public static void main(String[] args) {

        Student student = new Student();
student.testName("李四"); }

运行结果:

局部变量name的值为:李四
成员变量name的值为:张三

2. this 调用当前类的其它方法,也就是类中的成员方法。

代码示例:

public class Student {

    private String name="张三";

    public void testName(){
this.haha();
} public void haha(){
System.out.println(" this 调用当前类的其它方法 ");
} }
public static void main(String[] args) {

        Student student = new Student();
student.testName(); }

运行结果:

 this 调用当前类的其它方法 

3. this 调用当前类的构造方法。

当使用 this 关键字在当前类的构造器中调用当前类的其它构造方法时,this 需要放在当前构造器的首行,不然会编译报错。

代码示例:

public class Student {

    public Student(){
System.out.println("构造方法一");
} public Student(String name){
this(); //放在首行
System.out.println("构造方法二");
} }
public static void main(String[] args) {

        Student student = new Student("张三");

    }

运行结果:

构造方法一
构造方法二

如果 this 不放在首行,编译期将会报错。

如果在当前类的普通方法中使用 this 调用类的构造器,同样会报错。

一些其它说明:

this 不能用在 static 修饰的方法中,因为被 static 修饰的方法属于类,不属于这个类的某个对象,而 this 代表当前类对象的引用,指向一个具体的对象。

this 关键字的使用及说明的更多相关文章

  1. 作为一个新手的Oracle(DBA)学习笔记【转】

    一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...

  2. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  3. java面向对象中的关键字

    1,super关键字 super:父类的意思 1. super.属性名 (调用父类的属性) 2. super.方法名 (调用父类的方法) 3. super([参数列表])(调用父类的构造方法) 注意: ...

  4. 关于javascript中的this关键字

    this是非常强大的一个关键字,但是如果你不了解它,可能很难正确的使用它. 下面我解释一下如果在事件处理中使用this. 首先我们讨论一下下面这个函数中的this关联到什么. function doS ...

  5. transient关键字的用法

    本篇博客转自 一直在路上 Java transient关键字使用小记 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,Java ...

  6. Java关键字:static

    通常,当创建类时,就是在描述那个类的外观和行为.只有用new创建类的对象时,才分配数据存储空间,方法才能被调用.但往往我们会有下面两种需求: 1.我想要这样一个存储空间:不管创建多少对象,无论是不创建 ...

  7. Core Java 总结(关键字,特性问题)

    2016-10-19 说说&和&&的区别 初级问题,但是还是加入了笔记,因为得满分不容易. &和&&都可以用作逻辑与的运算(两边是boolean类型), ...

  8. Net中的常见的关键字

    Net中的关键字有很多,我们最常见的就有new.base.this.using.class.struct.abstract.interface.is.as等等.有很多的,在这里就介绍大家常见的,并且有 ...

  9. php多关键字查询

      php单一关键字查询 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 tdansitional//EN" "http: ...

  10. Keil> 编译器特有的功能 > 关键字和运算符 > __weak

    __weak 此关键字指示编译器弱导出符号. 可以将 __weak 关键字应用于函数和变量声明以及函数定义. 用法 函数和变量声明 对于声明,此存储类指定一个 extern 对象声明,即使不存在,也不 ...

随机推荐

  1. AC自动机处理多串匹配——cf1202E

    si+sj中间有一个切割点,我们在t上枚举这个切割点i,即以t[i]作为最后一个字符时求有多少si可以匹配,以t[i+1]作为第一个字符时有多少sj可以匹配 那么对s串正着建一个ac自动机,反着建一个 ...

  2. Springboot Excle导入导出

    Springboot Excle导入导出 导入操作:Excle批量导入 导出操作:下载模版 开发笔记 pom.xml <!-- Excle相关jar --> <dependency& ...

  3. nginx代理一个服务器上所有域名

    1. 主配置文件不需要更改任何配置2. 在vhosts目录下需要建立两个文件,一个是servername 列表文件,一个是虚拟主机配置文件两个文件内容分别为 #() servername server ...

  4. 在Linux下安装PyEmu

    git clone https://github.com/OpenRCE/pydbg.git git clone https://github.com/OpenRCE/paimei.git libda ...

  5. POJ 3304 Segments (判断直线与线段相交)

    题目链接:POJ 3304 Problem Description Given n segments in the two dimensional space, write a program, wh ...

  6. python TypeError: ‘encoding’ is an invalid keyword argument for this function

    shell调用python脚本出现了这个问题,查询原因得知,python脚本是python3.6写的,我们服务器上默认的python是python2.7.3,所以会出现编码问题. 解决思路: 1.安装 ...

  7. Spring Boot主要目标

    Spring Boot主要目标 Spring Boot的主要目标是: 为所有Spring开发提供一个基本的,更快,更广泛的入门体验. 开箱即用,但随着需求开始偏离默认值,快速启动. 提供大型项目(例如 ...

  8. CM 安装CDH 错误: 安装失败。 无法接收 Agent 发出的检测信号。

    在安装CDH的时候出现错误提示: 安装失败. 无法接收 Agent 发出的检测信号. 日志提示错误: start >> raise socket.error(msg) >>er ...

  9. FP-Tree -关联规则挖掘算法(转载)

    在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库.于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支 支持度和置信度 严格地说Apriori和FP- ...

  10. assignment of day four

    目录 1.Numeric type (1)integer (2)float Usefulness Define How to use 2.string type Use Define How to u ...