Java中的this指针

Java中的this指针在 Java 中 提到 this 谁都不会陌生 这里再简单整理下 备忘 Java 中 一般来说 this 指针指的是当前正在访问的这段代码的对象 但是如果在内部类中需要使用外部类中的对象 这时就需要使用外部类的类名进行限定 这种方式在 Android 开发中也比较常见 Author twlkyao package twlkyao public class A public A

在Java中,提到this谁都不会陌生,这里再简单整理下,备忘。

Java中,一般来说this指针指的是当前正在访问的这段代码的对象,但是如果在内部类中需要使用外部类中的对象,这时就需要使用外部类的类名进行限定。这种方式在Android开发中也比较常见。

@Author: twlkyao

package twlkyao;

public class A {
public A() {
Inner inner = new Inner();
inner.outer(); // call the inner class's outer method.
this.outer(); // call A's outer method.
}

public void outer() {
System.out.println("outer run");
}

class Inner {
public void outer(){
System.out.println("inner run");
A.this.outer(); // call A's outer method.
System.out.println("--------");
}
}

public static void main(String[] args) {
A a = new A();
}
}

Inner是内部类,访问类A中的outer()方法,又由于匿名内部类中有同样的方法,所以需要使用A的this指针进行限定。

输出结果为:

inner run
outer run
——–
outer run

另外,在构造方法中,经常使用this(参数表)来调用参数多的构造方法(和Swift中的convenience initializer类似,在Swift中,convenience initializer必须调用或者说代理给designated initializer),并且Java要求在构造方法中,this(参数表)要出现在任何其他语句之前。

public class Circle {
private double radius;

public Circle(double radius) {
this.radius = radius;
}

public Circle() {
this(1.0); // call the upper initializer.
this.radius = 2.0; // just to indicate that the this(parameters...) must be called first.
}
}

在如上代码中,无参构造函数,调用有参构造函数。在无参构造函数中再次修改radius只是为了说明在构造方法中,this(参数表)要出现在任何其他语句之前。

参考资料:

http://bbs.csdn.net/topics/260050701

《Java语言程序设计——基础篇》

编程小号
上一篇 2025-01-28 12:17
下一篇 2025-03-24 11:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/120057.html