public class ThisTest { private int i = 0; // 第一个构造器:有一个int型形参 ThisTest(int i) { this.i = i + 1;// 此时this表示引用成员变量i,而非函数参数i System.out.println("Int constructor i——this.i: " + i + "——" + this.i); System.out.println("i-1:" + (i - 1) + "this.i+1:" + (this.i + 1)); // 从两个输出结果充分证明了i和this.i是不一样的! } // 第二个构造器:有一个String型形参 ThisTest(String s) { System.out.println("String constructor: " + s); } // 第三个构造器:有一个int型形参和一个String型形参 ThisTest(int i, String s) { this(s);// this调用第二个构造器 // this(i); this.i = i++;// this以引用该类的成员变量 System.out.println("Int constructor: " + i + "\n" + "String constructor: " + s); } public ThisTest increment() { this.i++; return this;// 返回的是当前的对象,该对象属于(ThisTest) } public static void main(String[] args) { ThisTest tt0 = new ThisTest(10); ThisTest tt1 = new ThisTest("ok"); ThisTest tt2 = new ThisTest(20, "ok again!"); System.out.println(tt0.increment().increment().increment().i); // tt0.increment()返回一个在tt0基础上i++的ThisTest对象, // 接着又返回在上面返回的对象基础上i++的ThisTest对象! } }
Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
运行结果:
Int constructor i——this.i: 10——11
i-1:9this.i+1:12
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14
细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要三种用法:
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
说明在什么情况下需要用到this:
第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。
相关推荐
总的来说,`this` 关键字是 Java 中用于表示对象实例自身的一个关键字,它帮助我们访问成员变量、区分同名变量、在构造器间传递参数以及实现链式方法调用。理解并熟练运用 `this` 关键字对于编写清晰、高效的 Java ...
初学者在学习Java时,理解和掌握`this`关键字的使用是至关重要的,因为它可以帮助我们更好地编写和理解类与对象之间的关系。下面我们将深入探讨`this`关键字的几个主要用法。 1. **成员变量的访问** 当类中的局部...
本篇文章将深入探讨`super`关键字的使用方法,包括其在构造函数、方法调用以及字段访问中的应用。 ### 1. 构造函数调用 当子类继承父类时,有时候我们需要在子类的构造函数中调用父类的构造函数。Java中的`super`...
Java this 关键字的使用方法详解 Java this 关键字是 Java 语言中一种特殊的引用变量,用于指代当前对象的引用。this 关键字的使用方法可以分为四种:构造方法中的 this、非构造方法中的 this、继承关系下的 this ...
在Java中,this关键字有多种用法,以下我们将详细介绍this关键字的使用。 一、this关键字用于访问当前对象的成员变量 在Java中,如果我们想要访问当前对象的成员变量,可以使用this关键字,例如: ```java public...
在Java编程语言中,`this`关键字是一个非常重要的概念,它在程序的内存管理中扮演着关键角色。本文将深入探讨`this`关键字在Java程序中的...理解`this`的关键字用法和Java内存模型对于编写高效、无错误的代码至关重要。
// 使用this关键字区分实例变量和构造函数参数 this.rollno = rollno; this.name = name; this.fee = fee; } void display() { System.out.println(rollno + " " + name + " " + fee); } } ``` 2. 调用...
在深入探讨Java的关键字与保留字之前,我们首先需明确两个概念:关键字和保留字。在编程语言中,关键字是预定义的具有特殊含义的标识符,它们在编译时被解析器识别并执行特定的功能;而保留字则是语言设计者为未来...
Java的关键字是被语言本身预定义的标识符,它们不能作为变量名、类名或者方法名。Java的关键字一共51个,包括访问控制修饰符(如public、private、protected)、控制流程关键字(如if、else、for、while)、数据类型...
java代码-使用java解决用this关键字方法重载的源代码 ——学习参考资料:仅用于个人学习使用!
根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍Java中常用的关键字及其用法,这些知识点对于Java初学者来说非常重要。 ### 1. Abstract `abstract` 是 Java 中的一个关键字,用于声明抽象类或抽象...
在Java编程语言中,`this`关键字是一个非常关键的概念,它代表了当前对象的引用。在不同的上下文中,`this`有不同的用法和含义,但始终指向调用该代码的对象。接下来,我们将深入探讨`this`关键字在Java中的应用。 ...
Java this用法 概述:Java 中的 this ...Java this 关键字的用法非常广泛,我们可以使用 this 来访问成员变量、调用构造方法、指代对象自己等等。正确地使用 this 关键字可以使我们的代码更加简洁、易读和易维护。
本课程“MLDN魔乐JAVA_09深入引用、this关键字、对象比较”将带你深入探讨这些核心概念。 首先,让我们来讨论“引用”。在Java中,变量可以分为基本类型和引用类型。引用类型变量实际上存储的是对象在内存中的地址...
### Java零基础-this关键字 #### 内容概要 本文主要介绍了Java编程语言中的`this`关键字及其在不同场景下的应用。通过本文的学习,初学者能够深入理解`this`关键字的作用,掌握其在实例方法、构造方法及内部类中的...
在Java中,关键字具有特殊的语法含义,不能用作标识符(例如变量名或方法名)。以下是对给定文件中提到的Java关键字进行的详细解释与总结: #### 1. `abstract` - **用途**:`abstract`关键字用于声明抽象类或抽象...
在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来声明一个变量、方法或类为不可变的。在这个学习demo中,我们将深入理解`final`关键字的各种用法及其背后的原理。 首先,`final`关键字用于变量...
当存在需要明确指出当前使用方法的对象是谁的情况时,`this`关键字非常有用。比如,如果一个方法或构造函数中有多个同名的变量(包括字段和参数),`this`可以帮助区分它们。在`increment()`方法中,`this.i += 1;`...
在 Java 编程语言中,this 关键字是一个非常重要的概念,它有多种用法,但基本上可以归纳为三种:表示当前对象的引用、表示类的成员变量和在构造方法中引用满足指定参数类型的构造器。下面将详细介绍这三种用法。 ...
本文将深入探讨`this`关键字的使用,特别是在Java面向对象编程的进阶场景中。 首先,我们来明确`this`是什么。`this`关键字在Java中代表当前对象的引用,即调用当前方法或构造器的那个对象。在实例方法或构造器内部...