1、表示对当前对象的引用!
2、
函数参数和成员变量进行区分
this.xxx是指成员变量,xxx是指参数。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚。现在让大家看一个小例子,给你分享一下JAVA中“this”的用法!
/**
* @author fengzhi-neusoft
* * 本示例为了说明this的三种用法!
*/
package test;
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对象!
}
}
运行结果:
Int constructor i——this.i: 10——11
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14
分享到:
相关推荐
day09_11_this关键字的三种用法
### this的用法以及改变this指向 #### 为什么学习this? 在JavaScript中,`this`关键字的使用极为广泛。理解并掌握`this`的工作机制对于提高编程能力至关重要: 1. **阅读代码的能力**:不了解`this`的工作原理,...
以下是对`this`指针用法的详细解析,包括其基本功能、特殊用途以及在不同上下文中的行为。 #### 1. `this`指针的基本作用 `this`指针在每个非静态成员函数中隐式存在,指向调用该函数的对象实例。例如,在一个`...
在本文中,我们将深入探讨`this`关键字的用法,通过示例程序来帮助理解其功能和应用场景。 首先,`this`关键字是一个隐式指针,它指向当前对象实例。当你在类的方法或属性中引用一个成员时,如果该成员与方法参数或...
- **调用成员变量**:在类的方法中,如果需要访问一个非静态成员变量,可以使用`this`关键字前缀,例如`this.MyVariable`。这有助于避免与局部变量名称的冲突。 - **调用成员方法**:同样,我们也可以通过`this`...
JAVA this用法详解 在 Java 编程语言中,this 关键字是一个非常重要的概念,它有多种用法,但基本上可以归纳为三种:表示当前对象的引用、表示类的成员变量和在构造方法中引用满足指定参数类型的构造器。下面将详细...
this 的用法在 Java 中大体可以分为三种: 1. 普通的直接引用 在类的成员方法中,可以使用 this 来直接引用当前对象的成员变量或方法。例如: ```java class Test { private int x, y; public Test(int x, int ...
此外,还有几种情况会影响函数上下文中的this值。比如通过apply和call方法可以指定函数内部this的值;通过new关键字构造函数会创建一个新对象,并将新对象作为函数的this值;在箭头函数中,this值是在定义时确定的,...
Java this用法 概述:Java 中的 this 关键字是一种特殊的引用变量,它总是指向当前对象本身。this 关键字可以用来访问当前对象的成员变量、方法和构造方法。在 Java 中,this 关键字有多种用法,本文将详细介绍 ...
在本文中,我们将深入探讨`this`在JavaScript中的工作原理,以及在不同场景下的用法。 1. **函数调用方式** 在函数调用中,`this`的值取决于函数被调用的方式。如果函数是作为对象的方法调用,`this`将指向调用该...
三、使用 this 和 super 的好处 使用 this 和 super 关键字可以帮助我们在编程中避免一些常见的错误,例如,在某个方法中,如果形参名与当前对象的成员变量名相同,使用 this 关键字可以明确地指明当前对象的成员...
在上面的例子中,`SetValue`方法接收一个名为`value`的参数,为了区分这个局部变量和类的成员变量,我们使用了`this.value`来明确地表示类的成员变量。 ### 构造函数中的`this`用法 在C#中,一个类可以有多个构造...
例如,在某个方法中,如果有一个形参名与当前对象的某个成员变量同名,我们需要使用 this 关键字来明确地指定我们要访问的成员变量。例如: ```java public class DemoThis { private String name; private int ...
下面将详细阐述`this`的使用方法及其在Java中的各种应用场景。 首先,`this`关键字可以用来访问当前对象的成员变量。当成员变量和局部变量名称相同时,`this`可以帮助我们区分两者,确保正确地引用成员变量。例如:...
本文将详细解释`this`关键字的几种主要用法及其应用场景。 #### 一、表示对当前对象的引用 `this`关键字最基础的用途就是表示对当前对象自身的引用。当我们在一个类的方法内部使用`this`时,它就代表了当前正在...
`this`可以作为方法的参数传递,将当前对象传递给其他方法或类,通常在事件处理或回调中使用。例如: ```java public class Button { public void onClick(ClickHandler handler) { handler.handle(this); // ...
本文实例为大家分享了C# this关键字的四种用法,供大家参考,具体内容如下 用法一 this代表当前实例,用this.显式调用一个类的方法和成员 namespace Demo { public class Test { private string scope = 全局...
本文将详细介绍JavaScript中一种常见的事件处理用法——onclick(this)。 首先,我们需要理解什么是onclick事件处理器。在HTML中,onclick是一个事件属性,用于指定当元素被点击时将调用的JavaScript代码。这个属性...
js原生态函数中使用jQuery中的$(this)无效的解决方法 在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发...