属个人收藏
参考文献链接:http://mougaidong-163-com.iteye.com/blog/994934
http://www.cnblogs.com/java-class/archive/2012/12/19/2825463.html
http://blog.csdn.net/anmei2010/article/details/4091227
http://www.cnblogs.com/-cyb/articles/Java-this.html
每当一个对象创建后,Java虚拟机会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this的用法。这在“Java关键字static、final使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
1、局部变量与成员变量重名,函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽(局部变量隐藏成员变量),此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。(注意区别成员变量和局部变量)
2、方法参数与成员变量重名
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!");
System.out.println("s=" + x.s);//验证成员变量值的改变
}
}
结果为:s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!
s=HelloWorld!
3、调用该类的另一个构造方法,用法是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。如果在构造方法中调用另一个构造方法,则该语句必须是第一条语句。
public class ThisDemo {
String name;
int age;
public ThisDemo (){
this.age=21;
}
public ThisDemo(String name,int age){
this();
this.name="Mick";
}
private void print(){
System.out.println("最终名字="+this.name);
System.out.println("最终的年龄="+this.age);
}
public static void main(String[] args) {
ThisDemo tt=new ThisDemo("",0); //随便传进去的参数 tt.print();
}
}
(没有看懂案例)4、在函数中,需要引用该函数所属类的当前对象时候,直接用this。把this作为参数传递
,当你要把自己作为参数传递给别的对象时,也可以用this。
把自己当作参数传递时,也可以用this.(this作当前参数进行传递)
class A {
public A() {
new B(this).print();// 调用B的方法
}
public void print() {
System.out.println("HelloAA from A!");
}
}
class B {
A a;
public B(A a) {
this.a = a;
}
public void print() {
a.print();//调用A的方法
System.out.println("HelloAB from B!");
}
}
public class HelloA {
public static void main(String[] args) {
A aaa = new A();
aaa.print();
B bbb = new B(aaa);
bbb.print();
}
}
结果为:HelloAA from A!
HelloAB from B!
HelloAA from A!
HelloAA from A!
HelloAB from B!
在这个例子中,对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。
(暂时没有找相关资料)5、匿名类和内部类中的中的this
其实这些用法总结都是从对“this是指向对象本身的一个指针”这句话的更深入的理解而来的,死记不然容易忘记而且容易搞错,要理解!
相关推荐
本课程“MLDN魔乐JAVA_09深入引用、this关键字、对象比较”将带你深入探讨这些核心概念。 首先,让我们来讨论“引用”。在Java中,变量可以分为基本类型和引用类型。引用类型变量实际上存储的是对象在内存中的地址...
它在以下几种情况中尤其常见: 1. **方法内部引用实例变量**:当局部变量和实例变量同名时,`this`可以用来区分它们,确保访问到的是实例变量。 2. **构造函数调用**:一个类可能有多个构造函数(构造器),`this`...
#### 二、this关键字的用法 ##### 1. 当参数名与成员变量名冲突时 在类的方法中,如果局部变量(如方法参数)的名字与成员变量名字相同,可以通过使用`this`关键字来明确地指明所访问的是成员变量。这样可以避免...
### Java中的this关键字详解 #### 一、概述 在Java编程语言中,`this`关键字是一种非常实用且灵活的关键字,它主要用于指代当前对象。`this`可以在类的内部被使用,帮助开发者清晰地表达代码逻辑,尤其是在解决...
在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用函数执行时的上下文对象。`this`的值取决于函数被...在编写JavaScript代码时,正确使用`this`可以避免很多常见的错误,并提高代码的可读性和可维护性。
在JavaScript中,`this`关键字主要有以下几种情况: 1. 全局上下文中的`this` 在全局执行上下文中,`this`指代的是全局对象。在浏览器中,全局对象是`window`。因此,在全局作用域中声明的变量和函数实际上是作为...
下面我们将详细探讨`this`关键字的用途、用法以及它在C#中的重要性。 首先,`this`关键字用于访问当前类中的成员。当类的成员与局部变量或者参数名相冲突时,`this`可以帮助我们区分它们。例如: ```csharp public...
// 使用this关键字区分实例变量和构造函数参数 this.rollno = rollno; this.name = name; this.fee = fee; } void display() { System.out.println(rollno + " " + name + " " + fee); } } ``` 2. 调用...
`this`关键字的用法类似于自然语言中的代词,它用来引用当前执行上下文的对象,帮助开发者避免命名冲突和提高代码可读性。 在JavaScript中,`this`总是指向调用函数或方法时所在的对象。这个对象被称为函数的“调用...
以下是关于`this`关键字在JavaScript中四种常见调用方式的详细解释: 1. **作为对象方法调用** 当函数作为对象的一个方法被调用时,`this`会被自动绑定到调用该方法的对象上。例如: ```javascript var point =...
JavaScript中的作用域和`this`关键字是编程中非常重要的概念,尤其在JavaScript中,它们具有独特的特点和行为。本文将深入探讨这两个概念及其在实际编程中的应用。 首先,我们来看一下**作用域(Scope)**: 作用...
本文将详细解析四种常见的`this`使用情况。 **情况一:纯粹的函数调用** 当函数被作为全局函数调用时,`this`指向全局对象,在浏览器环境中,这个全局对象通常是`window`。以下示例展示了`this`如何在全局作用域中...
在提供的压缩包文件中,`main.java`可能是包含使用`this`关键字的示例代码,而`README.txt`可能包含了关于这个练习的更多说明或提示。读者可以通过查看这些文件进一步学习和理解`this`的关键字的应用。
使用 this 和 super 关键字可以帮助我们在编程中避免一些常见的错误,例如,在某个方法中,如果形参名与当前对象的成员变量名相同,使用 this 关键字可以明确地指明当前对象的成员变量名。 此外,使用 this 和 ...
### JavaScript中this关键字使用方法详解 #### 一、引言 在面向对象编程语言中,`this`关键字是一个非常常见的概念。例如,在C++、C#和Java等语言中都有提供这一关键字,尽管初学时可能会觉得有些难度,但一旦理解...
当存在需要明确指出当前使用方法的对象是谁的情况时,`this`关键字非常有用。比如,如果一个方法或构造函数中有多个同名的变量(包括字段和参数),`this`可以帮助区分它们。在`increment()`方法中,`this.i += 1;`...
下面我们将通过一系列实例来深入理解`this`的关键字用法。 首先,我们来看一个基本的例子: 例1: ```javascript function a() { var user = "yao"; console.log(this.user); // undefined console.log(this); ...
在Java中,`this`关键字有以下几种常见用法: 1. **访问实例变量**:当成员变量与局部变量或参数变量重名时,`this`可以帮助我们明确地访问类的实例变量。例如,在下面的代码中,`this.name`和`this.age`用于访问...
3. 构造函数:在使用`new`关键字创建实例时,`this`指向新创建的对象。 4. 方法调用:当函数作为对象的一个方法调用时,`this`指向调用该方法的对象。 5. `call()`, `apply()`, `bind()`:这三个函数可以显式地设置`...
以上介绍了 Java 中的一些常见关键字及其用法。这些关键字是 Java 编程的基础,熟练掌握它们对于编写高效、可维护的 Java 应用程序至关重要。希望本文能帮助 Java 初学者更好地理解和使用这些关键字。