"类名.this"与"this"的区别

"this"是指(或者说:所代表的是)当前这段代码所在的类的对象、而"类名.this"是指"类名"的对象(一般在匿名类或内部类中使用来调用外部类的方法或属性)

如例:

class A {
         public void method(){
                A.this  //这里的"A.this"就是表示类"A"的对象。。在这种情况下"A.this"和"this"是一样的
            }

class  B {  //"class A"中的一个内部类"B"(内部类也可以是使用关键字"new" 所新实例出来的一个匿名类或者接口,比如"new OnClickListener()")
                  void method1() {
                             A.this  //这里的"A.this"还是表示类"A"的对象。。但是这里是在内部类里面。。所以这里如果使用的是"this"那就是内部类B的对象了。。但是我们经常会在内部类里面调用外部的东西。。所以就用"A.this"这种方式就行了
                   }
           }
}

时间: 2024-10-05 00:51:21

"类名.this"与"this"的区别的相关文章

【转】 java中Class对象详解和类名.class, class.forName(), getClass()区别

Class对象的生成方式如下: 1.类名.class           说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串")  (注:类名字符串是包名+类名)  说明:装入类,并做类的静态初始化,返回Class的对象 3.实例对象.getClass()  说明:对类进行静态初始化.非静态初始化:返回引用运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所

java中类名.class, class.forName(), getClass()区别

Class对象的生成方式如下: 1.类名.class           说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串")  (注:类名字符串是包名+类名)  说明:装入类,并做类的静态初始化,返回Class的对象 3.实例对象.getClass()  说明:对类进行静态初始化.非静态初始化:返回引用o运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)

java中类名.class、实例.getclass()区别

1 import java.util.HashSet; 2 import java.util.Iterator; 3 4 /** 5 * Created by GOD on 2016/1/23. 6 * Class对象的生成方式如下: 7 1.类名.class 说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 8 2.Class.forName("类名字符串") (注:类名字符串是包名+类名) 说明:装入类,并做类的静态

java中Class对象详解和类名.class, class.forName(), getClass()区别

Class对象的生成方式如下: 1.类名.class           说明: JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),不做类的初始化工作.返回Class的对象 2.Class.forName("类名字符串")  (注:类名字符串是包名+类名)  说明:装入类,并做类的静态初始化,返回Class的对象 3.实例对象.getClass()  说明:对类进行静态初始化.非静态初始化:返回引用运行时真正所指的对象(因为:子对象的引用可能会赋给父对象的引用变量中)所

Qt中Ui名字空间以及setupUi函数的原理和实现

用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢,还是从main开始, [cpp] view plain copy #include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(ar

java方法与构造

public class StaticClass { static int i = 50; int y; // 构造只能有访问修饰符public.protected.private 修饰 (访问修饰符也可以不用),不能出现static.final. // 构造必须和类名一样 // 最简单的构造 方法没有这样的格式 StaticClass() { } // 方法名可以和类名一样(首字母大小写区别)方法名首字母一般小写. public int StaticClass(int y) { return

使用ORM关联关系,如何自己关联自己

今天碰到一个需求是需要自己关联自己,输出数据为树状,我们在定义关联关系的用get_calss方法 /** * 定义关联关系 * @return \think\model\relation\HasMany */ public function user() { return $this->hasMany(get_class($this),'area','area'); } { "code": 200, "message": "成功", &qu

android面试题及答案

JAVA 1.GC是什么? 为什么要有GC? GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法. 2.XML包括哪些解释技术,区别是什么? DOM和SAX DOM将文档解析成一颗文档树,可在节点上进行遍历.增加.修改和删除.一次性读入内存,对内存消耗大. SAX至上

Qt中Ui名字空间以及setupUi函数的原理和实现 &lt;转&gt;

用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢,还是从main开始, [cpp] view plaincopyprint? #include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication