`

Java_this

    博客分类:
  • Java
 
阅读更多

 this 
要点: 
this关键字只能在方法中使用,它能为调用该方法的对象提供相应的句柄,使得同一个类产生的不同对象实例在调用同一方法的时候,系统能判断出是哪一个对象在进行调用. 
比如: 
MyObject a=new MyObject(); 
MyObject b=new MyObject(); 
a.f();// (3) 
b.f();// (4) 
编译器在编译的时候,实际上是将(3),(4)句解释为 
MyObject.f(a); 
MyObject.f(b); 
的,这样就将调用了该方法的对象的信息传到了方法中,也就是传给了this,就可以通过this表示调用该方法的对象实例. 

用this的概念还可以解释为什么在静态方法中不能调用非静态方法和元素,这是因为静态方法中没有this,也就是说我们不能获得调用该方法的对象的句柄.既然找不到这个对象实例,我们又怎么能够在其中调用对象实例的方法和元素呢? 

那为什么静态方法没有this呢?用静态方法的概念可以来理解这个问题.静态方法是类方法,是所有对象实例公用的方法.它不属于某一个具体的对象实例,因此也无法用this来体现这个实例.这和非静态方法是不一样的.打个比方,在一个局域网内的几个用户每个人都有一台客户机,但都访问一台公共的服务器.对于每台客户机来说,它的this就是使用它的用户.而对于服务器来说,它没有this,因为它是大家公用的,不针对某一个具体的客户. 

分享到:
评论

相关推荐

    Java_this_super.zip_super

    在Java编程语言中,`this`和`super`是两个非常关键的关键词,它们在类的继承机制中扮演着至关重要的角色。`this`关键字主要用于当前对象的引用,而`super`关键字则用于访问父类的成员。让我们深入探讨这两个概念以及...

    RSA.rar_Decryption in java_This Is It

    This is implementation of popular RSA algorithm for encryption and decryption in java. It can be run on client server architecture

    java_ee_sdk-8u1.zip

    This release modernizes support for many industry standards and continues simplification of enterprise ready APIs. Enhancements include: Java Servlet 4.0 API with HTTP/2 support Enhanced JSON ...

    JAVA_clockDisplay.rar_ClockDisplay ja_JAVA_clockDisplay_java clo

    - "TestThis.class":这通常是一个测试类的编译结果,用于验证代码的功能是否正确。 - ".classpath":这是Eclipse IDE的一个配置文件,记录了项目的类路径,帮助编译器和运行时找到依赖的库。 - ".project":这是...

    java_array_instance.rar_This Is It

    在"java_array_instance.rar_This Is It"这个示例中,可能包含了多种数组实例化的例子,如一维数组、二维数组,甚至可能是自定义对象的数组。文件`www.pudn.com.txt`可能包含了相关代码的详细解释,而`java`文件可能...

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

    在Java编程语言中,深入理解和熟练运用引用、`this`关键字以及对象比较是提升编程技能的关键环节。本课程“MLDN魔乐JAVA_09深入引用、this关键字、对象比较”将带你深入探讨这些核心概念。 首先,让我们来讨论...

    java_copy.rar_ java_copy

    描述中的"this is a student code"进一步证实了这一点,表明这是一份学生编写的Java代码。 在Java编程中,学生通常会接触到以下几个关键知识点: 1. **基础语法**: 包括数据类型(如整型、浮点型、字符型和布尔型...

    forum_Java_EE.rar_This Is It

    This application is a java EE forum witch include Ajax utility. It is design for understand Ajax functionality.

    Java4Android 16_this的使用方法

    在Java编程语言中,`this`关键字是一个非常重要的概念,尤其在开发Android应用时更为常见。`this`关键字主要用于引用当前对象的实例变量、方法或构造器,它可以帮助开发者更清晰地理解代码逻辑,同时也提供了代码的...

    Jess__The_Java_Expert_System_Shell

    CA Version 4.3 (December 3rd, 1998) ABSTRACT This report describes Jess, an expert system shell written entirely in Java. Jess supports the development ofrule-based expert systems which can be ...

    Undocumented_Secrets_of_MATLAB_Java_Programming.part1

    This book shows how using Java can significantly improve Matlab program appearance and functionality. This can be done easily and even without any prior Java knowledge. Readers are led step-by-step ...

    demoApplication_java_

    描述中的"this is code spring java"进一步确认了这是一个基于Spring的Java代码项目。Spring框架的核心特性之一是依赖注入(Dependency Injection,DI),它允许开发者解耦组件之间的依赖关系,使代码更易于测试和...

    Undocumented_Secrets_of_MATLAB_Java_Programming.part2

    This book shows how using Java can significantly improve Matlab program appearance and functionality. This can be done easily and even without any prior Java knowledge. Readers are led step-by-step ...

    Undocumented_Secrets_of_MATLAB_Java_Programming.part3

    This book shows how using Java can significantly improve Matlab program appearance and functionality. This can be done easily and even without any prior Java knowledge. Readers are led step-by-step ...

    Java_Date_日期时间整理

    Java_Date_日期时间整理 Java 中的日期时间处理是非常重要的,以下是 Java 中日期时间整理的知识点总结: 一、获取服务器端当前日期 在 Java 中,可以使用 `java.util.Date` 类来获取服务器端当前日期。可以使用...

    200_java_code.rar_Java 200

    "200_java_code.rar_Java 200" 这个压缩包显然是针对初学者设计的,提供了200个Java编程实例,帮助初学者快速掌握Java的基础知识。 在学习Java时,首先要理解的是它的基本语法结构。Java程序由类(class)组成,每...

    java_menu.rar_JAVA ME

    Java ME(Micro Edition)是Java平台的一个重要分支,主要用于嵌入式设备和移动设备的开发。这个"java_menu.rar_JAVA ME"压缩包文件显然包含了关于在Java ME环境中创建弹出式菜单的代码示例。在Java ME中,创建用户...

    追击问题java.rar_java_java 追击_java小程序_追击问题

    在这个Java程序中,我们可以期待看到如何利用基础的数学和编程逻辑来解决这类问题。 首先,追击问题通常涉及速度、距离和时间的概念。在Java中,我们可以创建类来表示追击者和被追者,这两个对象都有自己的位置...

    ant-javacard-master_antjava_Will_

    【描述】提到"Ant java have a look for the futher development in this feilef the coster will have an impact",虽然句子结构略有不清晰,但可以推测其含义是建议对Ant Java进行深入研究,因为这将对未来的发展...

    app_java_

    描述中的"this is java for a developer"进一步强调了这是面向开发人员的Java知识。 Java的核心特性包括“一次编写,到处运行”(Write Once, Run Anywhere, WORA),这意味着用Java编写的程序可以在任何支持Java的...

Global site tag (gtag.js) - Google Analytics