我知道很多朋友都和我一样:在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
细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要4种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
4:
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用。
分享到:
相关推荐
Java 中 This 用法的实例详解 Java 中的 this 关键字是一个非常重要的概念,它可以在类内部对自己的一个引用,可以方便类中方法访问自己的属性和方法。下面我们来详细了解 Java 中 this 用法的实例详解。 1. 使用...
在 Java 编程语言中,`this` 关键字是一个非常重要的概念,它用来引用当前对象的实例。本文将深入探讨 `this` 关键字的三种主要用途,并通过实例代码来解析其工作原理。 首先,`this` 关键字的基本含义是引用当前...
### Java中this&super的用法小结 #### 一、`this`关键字的理解与运用 **1.1 使用 `this` 引用成员变量** `this` 关键字主要用于解决成员变量与局部变量(如方法参数)同名时的混淆问题。在类的构造方法或方法中,...
总结来说,this关键字是Java语言中用于引用当前对象实例的常用机制。它在构造器中区分成员变量与参数变量、调用其他构造器、在方法中调用本类其他方法以及在内部类中引用外部类实例等方面都有广泛应用。通过合理使用...
Java 中 this 和 super 的用法 Java 中的 this 和 super 是两个重要的关键字,它们在面向对象的编程中扮演着非常重要的角色。本文将详细介绍这两个关键字的用法和意义。 this 关键字 在 Java 中,this 通常指当前...
### Java中this与super的详细区分 在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们分别用于引用当前对象和父类的对象。正确理解和使用这两个关键字对于编写高质量、易于维护的代码至关重要。 ####...
### Java中static、this、super、final用法详解 #### 一、static关键字的使用 在Java编程语言中,`static`是一个非常重要的关键字,它主要用于定义类成员(包括变量和方法),使得这些成员能够在不创建类实例的...
总结来说,`this` 和 `super` 是 Java 中的关键字,它们帮助我们清晰地处理对象内部的引用,以及在继承关系中调用父类的成员。正确理解和使用这两个关键字是编写高效、清晰的 Java 代码的基础。在实际编程中,应根据...
在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在处理对象和继承时起着关键作用。下面将详细解释这两个关键字的含义、用法以及它们在不同场景下的应用。 `this`关键字主要用来引用当前对象的成员...
在Java编程语言中,`this`和`super`是两个非常关键的关键词,它们用于解决对象内部的引用问题,帮助开发者更好地理解和使用类与对象之间的关系。本篇将详细阐述`this`和`super`的用法以及它们的区别。 首先,`this`...
### Java中的this与super关键字详解 #### 一、引言 在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在面向对象编程中扮演着不可或缺的角色。正确理解和使用这两个关键字对于编写高质量、易于维护...
### Java中的`clone`方法详解:浅拷贝与深拷贝 #### 一、引言 在Java中,`clone`方法提供了一种快速复制对象的方式。它属于`Object`类的一部分,但需要显式地在子类中声明并实现`Cloneable`接口才能正常使用。本文...
### Java中static用法详解 #### 一、概述 在Java编程语言中,`static`关键字扮演着极其重要的角色。它被广泛应用于多种场景中,包括定义静态变量、静态方法、静态代码块以及静态内部类等。通过使用`static`,...
以下是对`this`关键字在Java中的几种主要用法的详细解析: ### 1. 当前对象的引用 `this`最基本的作用是作为当前对象的引用。当你在一个类的方法内部使用`this`时,它指向调用该方法的对象。例如,在`ThisTest`类...
总结起来,`static`、`this`、`super`和`final`是Java中用于控制类、对象和继承的关键字,它们帮助开发者创建健壮、可维护的代码。理解并熟练运用这些关键字是Java程序员必备的技能。在实际开发中,根据具体需求灵活...
总结来说,`this`关键字在Java程序中用于明确地引用当前对象的实例变量或方法,帮助我们区分局部变量和实例变量。而Java的内存分配机制则确保了对象和其实例变量在堆内存中的正确存储和管理。理解`this`的关键字用法...
总结起来,`static`、`this`、`super`和`final`是Java中控制对象生命周期、引用当前对象、访问父类成员以及确保数据不变性的重要工具。理解和熟练使用这些关键字对于编写高质量的Java代码至关重要。在实际编程中,应...