`
winfred1206
  • 浏览: 13346 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

this 关键字

    博客分类:
  • Java
阅读更多
java中的this随处可见,用法也多,现在整理有几点:


1. this是指当前对象自己。
当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:

public class Hello {

String s = "Hello";

public Hello(String s)
{
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}

public static void main(String[] args) {
Hello x="new" Hello("HelloWorld!");
}
}
运行结果:

s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!

在这个例子中,构造函数Hello中,参数s与类Hello的变量s同名,这时如果直接对s进行操作则是对参数s进行操作。若要对类Hello的成员变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对构造函数中传递过来的参数s进行打印结果; 第二行是对成员变量s的打印;第三行是先对成员变量s赋传过来的参数s值后再打印,所以结果是HelloWorld!

2. 把this作为参数传递
当你要把自己作为参数传递给别的对象时,也可以用this。如:

public class A {
public A() {
new B(this).print();
}

public void print() {
System.out.println("Hello from A!");
}
}

public class B {
A a;
public B(A a) {
this.a = a;
}

public void print() {
a.print();
System.out.println("Hello from B!");
}
}
运行结果:
Hello from A!
Hello from B!

在这个例子中,对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。

3. 注意匿名类和内部类中的中的this。
有时候,我们会用到一些内部类和匿名类,如事件处理。当在匿嘀杏胻his时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:

public class A {
int i = 1;

public A() {
Thread thread = new Thread() {
public void run() {
for(;;) {
A.this.run();
try {
sleep(1000);
} catch(InterruptedException ie) { }

}
}
}; //注意这里有;
thread.start();
}

public void run() {
System.out.println("i = " + i);
i++;
}

public static void main(String[] args) throws Exception {
new A();
}

}

在上面这个例子中, thread 是一个匿名类对象,在它的定义中,它的 run 函数里用到了外部类的 run 函数。这时由于函数同名,直接调用就不行了。这时有两种办法,一种就是把外部的 run 函数换一个名字,但这种办法对于一个开发到中途的应用来说是不可取的。那么就可以用这个例子中的办法用外部类的类名加上 this 引用来说明要调用的是外部类的方法 run。

4。在构造函数中,通过this可以调用同一class中别的构造函数,如
public class Flower{
Flower (int petals){}
Flower(String ss){}
Flower(int petals, Sting ss){
//petals++;调用另一个构造函数的语句必须在最起始的位置
this(petals);
//this(ss);会产生错误,因为在一个构造函数中只能调用一个构造函数
}
}
值得注意的是:
1:在构造调用另一个构造函数,调用动作必须置于最起始的位置。
2:不能在构造函数以外的任何函数内调用构造函数。
3:在一个构造函数内只能调用一个构造函数。
分享到:
评论

相关推荐

    23.this关键字.zip

    23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字.zip23.this关键字...

    this关键字

    this关键字demo,简单的对this这个关键字做了一个小的代码,便于初学者直接的对this关键字有一个了解而已,技术太烂希望勿喷

    asp.net this关键字.txt

    ### ASP.NET中的this关键字 在ASP.NET开发过程中,`this`关键字是一个非常重要的概念,它在类的方法或构造函数中有着特殊的意义与用途。本文将详细介绍`this`关键字的用法及其背后的原理。 #### `this`关键字概述 ...

    MLDN魔乐JAVA_09深入引用、this关键字、对象比较.rar

    本课程“MLDN魔乐JAVA_09深入引用、this关键字、对象比较”将带你深入探讨这些核心概念。 首先,让我们来讨论“引用”。在Java中,变量可以分为基本类型和引用类型。引用类型变量实际上存储的是对象在内存中的地址...

    java中带有this关键字的程序内存分析

    在Java编程语言中,`this`关键字是一个非常重要的概念,它在程序的内存管理中扮演着关键角色。本文将深入探讨`this`关键字在Java程序中的应用,以及它如何与内存分配相关联。 首先,`this`关键字在Java中主要表示...

    this关键字共2页.pdf.zip

    【标题】: "this关键字共2页.pdf.zip" 指的是一份关于Java编程语言中的关键字"this"的文档,可能包含两页详细讲解。这个压缩文件很可能提供了"this"关键字的基础概念、用法以及在实际编程中的应用示例。 【描述】: ...

    Java中this关键字使用小结

    在 Java 编程语言中,`this` 关键字是一个非常重要的概念,它用来引用当前对象的实例。本文将深入探讨 `this` 关键字的三种主要用途,并通过实例代码来解析其工作原理。 首先,`this` 关键字的基本含义是引用当前...

    JavaScript中this关键字使用方法详解

    在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...

    Java零基础-this关键字.md

    ### Java零基础-this关键字 #### 内容概要 本文主要介绍了Java编程语言中的`this`关键字及其在不同场景下的应用。通过本文的学习,初学者能够深入理解`this`关键字的作用,掌握其在实例方法、构造方法及内部类中的...

    Java软件开发实战 Java基础与案例开发详解 5-7 this关键字 共5页.pdf

    ### Java软件开发实战:Java基础与案例开发详解之this关键字 #### 一、this关键字概述 在Java编程中,`this`关键字是一个非常重要且实用的概念。`this`关键字主要用于引用当前对象实例,使得开发者能够在方法内部...

    this关键字的用法.pdf

    1. **this关键字的含义** `this`关键字在Delphi中代表了正在执行方法的那个对象实例。当在一个类的方法内,我们需要引用到当前对象的属性或方法时,`this`就起到了指针的作用,指向调用该方法的对象实例。通过`this...

    深入理解JavaScript中的this关键字

    JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...

    一步一步学JAVA(第四课 方法、值传递、this关键字).docx

    "一步一步学JAVA(第四课 方法、值传递、this关键字)" 本资源主要介绍了Java语言中的方法、值传递和this关键字的使用。通过实例代码和详细的解释,读者可以了解Java方法的声明和调用方式、值传递的机制和this关键字...

    this关键字的用法和类的创建

    最基本的程序,适用于初学者!我是在做第一个项目中写的这几个小的demo,供和我一样刚入门的人学习

    this关键字的总结.doc

    ### Java中的this关键字详解 #### 一、概述 在Java编程语言中,`this`关键字是一种非常实用且灵活的关键字,它主要用于指代当前对象。`this`可以在类的内部被使用,帮助开发者清晰地表达代码逻辑,尤其是在解决...

    第04章 面向对象(上) 07 This关键字

    1. this关键字的含义: "this"关键字在Java中代表当前对象的引用。在方法或构造器内部,当需要区分局部变量与成员变量,或者明确表示当前对象时,"this"就显得非常有用。它始终指向调用该方法或构造器的对象实例。 ...

    【Java编程教程】详解Java this 关键字.pdf

    // 使用this关键字区分实例变量和构造函数参数 this.rollno = rollno; this.name = name; this.fee = fee; } void display() { System.out.println(rollno + " " + name + " " + fee); } } ``` 2. 调用...

    深入理解java中this关键字的使用

    深入理解Java中this关键字的使用 this关键字是Java中一个非常重要的关键字,它主要用于表示当前对象的引用,通过this关键字可以访问当前对象的成员变量和成员方法。在Java中,this关键字有多种用法,以下我们将详细...

    类和对象,this关键字和构造方法

    ### 类和对象,this关键字和构造方法 #### 一、类和对象的概念 在面向对象编程(OOP)中,“类”与“对象”是最基本也是最重要的概念。 1. **类**: - 类是一种抽象的数据类型,用来描述具有相同属性和行为的...

    Java this 关键字的使用方法详解

    Java this 关键字的使用方法详解 Java this 关键字是 Java 语言中一种特殊的引用变量,用于指代当前对象的引用。this 关键字的使用方法可以分为四种:构造方法中的 this、非构造方法中的 this、继承关系下的 this ...

Global site tag (gtag.js) - Google Analytics