自学java也有一段时间了,回想起来初学java的我最迷惑的一点就是this了,我们知道,java与c++最大的区别是什么呢,java只保留了 c++面向对象的部分,砍去了面向过程的部分,那么除此之外最大的不同是什么呢,那么就是java砍去了c++/c的指针,这一令无数初学者反感的东西, 只保留了this指针,但是光这一点,却又迷惑了一大批人,下面我就一起和大家来探讨一下this指针的作用吧(写的不好的地方还请指出~~~).
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.util.Stack; public class Main2 { private int i = 0; public Main2(){} public Main2(int i) { /* *这里面的this还是表示当前类的对象,它有什么用呢,作用就是将传进来的参数i的值 *赋给当前对象的i变量,因为这两个变量名相同因此如果去掉this的话,编译系统不会报错 *但他会告诉你这是无效的,因为这时候i就只代表传进来的变量了,那么自己将只赋给自己 *显然是无效的。 */ this.i=i; } public Main2(int i,String s) { /* * 这里的this还是表示当前类的对象,它表示的是调用当前对象的构造方法 * 这里看得出来是调用了第2个构造方法 */ this(i); } private void display() { //这里的this就表示当前类的对象指针 System.out.println(this.i); } private void displayThis() { System.out.println(this); } private void displayEditor() { //当然咯,this既然表示当前类的对象,则自然还可以调用方法咯 this.display(); System.out.println("huyifan"); } public static void main(String args[]) { /* * 但是这三个Main2类的对象所对应的this却是不同的,来看看直接输出(this)的运行结果 * poj.Main2@97d01f * poj.Main2@e0a386 * poj.Main2@feb48 * 从这里我们就可以清楚的看出3个对象的this指针是不同的 */ Main2 m1=new Main2(); Main2 m2=new Main2(1); Main2 m3=new Main2(2,"test"); m1.display(); m1.displayThis(); m2.display(); m2.displayThis(); m3.display(); m3.displayThis(); m3.displayEditor(); } }
运行结果:
0
poj.Main2@97d01f
1
poj.Main2@e0a386
2
poj.Main2@feb48
2
huyifan
下面我来总结一下:从以上情况看来this指针最常用的方法一共有3种
1.this指针用来引用该对象的变量或方法。
2.this指针用来作为构造器来初始化类中的变量
3.需要引用该函数所属的类的对象的时候,直接引用this。
最后但是最重要的一点!!
this指针不能在static中使用!!!!
这个其实很好理解
1.首先看static,static的作用就是让所有的对象都共享这个被static关键字共享的变量或方法,如果在static中使用this,那么这个this最代表的一个类的对象怎么被其他的对象所引用,j况且对象是不能引用另一个对象的!
相关推荐
### Java零基础-this关键字 #### 内容概要 本文主要介绍了Java编程语言中的`this`关键字及其在不同场景下的应用。通过本文的学习,初学者能够深入理解`this`关键字的作用,掌握其在实例方法、构造方法及内部类中的...
"Java 多线程与并发(4-26)-关键字- synchronized详解" Java 多线程与并发中的 synchronized 关键字是实现同步块的互斥访问和线程的阻塞及唤醒等工作的重要工具。下面将对 synchronized 关键字进行详细分析。 ...
### 电子教材:《Java语言程序设计-关键字》知识点概览 ...通过以上对Java关键字的详细介绍,我们可以看出,关键字是Java语言的基础组成部分之一,熟练掌握它们的用法对于成为一名合格的Java程序员至关重要。
在Java编程语言中,`this`关键字是一个非常重要的概念,它在程序的内存管理中扮演着关键角色。本文将深入探讨`this`关键字在Java程序中的...理解`this`的关键字用法和Java内存模型对于编写高效、无错误的代码至关重要。
Java编程语言是面向对象的、跨平台的编程语言,由Sun ...在"【IT十八掌徐培成】Java基础第02天-01.java关键字"这个视频教程中,徐培成老师将详细讲解这些关键字的使用场景和注意事项,对于初学者来说是一份宝贵的资源。
java代码-使用java解决用this关键字方法重载的源代码 ——学习参考资料:仅用于个人学习使用!
总的来说,`this` 关键字是 Java 中用于表示对象实例自身的一个关键字,它帮助我们访问成员变量、区分同名变量、在构造器间传递参数以及实现链式方法调用。理解并熟练运用 `this` 关键字对于编写清晰、高效的 Java ...
`this`关键字是Java编程中一个非常重要的概念,掌握其正确的使用方法对于编写高质量、高可读性的Java代码至关重要。通过合理使用`this`关键字,不仅可以提高代码的清晰度,还能有效避免一些常见的编程陷阱。
如果一个类包含一个或多个抽象方法,那么这个类必须被声明为抽象类,使用`abstract`关键字标识。例如: ```java abstract class Person { public static final String NAME = "newsainton"; public void print() ...
在Java编程语言中,标识符号、关键字和类型是构建程序的基础元素。理解并熟练掌握这些概念对于编写高质量的Java代码至关重要。以下是对这些主题的详细解释: **标识符号(Identifiers)** 在Java中,标识符是程序员...
本文将深入探讨`this`关键字的使用,特别是在Java面向对象编程的进阶场景中。 首先,我们来明确`this`是什么。`this`关键字在Java中代表当前对象的引用,即调用当前方法或构造器的那个对象。在实例方法或构造器内部...
初学者在学习Java时,理解和掌握`this`关键字的使用是至关重要的,因为它可以帮助我们更好地编写和理解类与对象之间的关系。下面我们将深入探讨`this`关键字的几个主要用法。 1. **成员变量的访问** 当类中的局部...
在Java编程语言中,`this`关键字是一个非常关键的概念,它代表了当前对象的引用。在不同的上下文中,`this`有不同的用法和含义,但始终指向调用该代码的对象。接下来,我们将深入探讨`this`关键字在Java中的应用。 ...
### Java零基础-final关键字 #### 内容概要 ...通过上述内容的学习和实践,读者不仅能够熟练掌握final关键字的使用方法,还能深刻理解其背后的原理和重要性,从而写出更安全、更高效的Java代码。
在Java中,this关键字有多种用法,以下我们将详细介绍this关键字的使用。 一、this关键字用于访问当前对象的成员变量 在Java中,如果我们想要访问当前对象的成员变量,可以使用this关键字,例如: ```java public...
Java this 关键字的使用方法详解 Java this 关键字是 Java 语言中一种特殊的引用变量,用于指代当前对象的引用。this 关键字的使用方法可以分为四种:构造方法中的 this、非构造方法中的 this、继承关系下的 this ...
但是需要注意,`this`关键字不能在静态方法中使用,因为静态方法与特定对象无关。 其次,`super`关键字则用于引用父类的成员。它可以用来调用父类的构造方法、普通方法和字段。例如,`super()`调用父类的默认构造器...
Java关键字是被Java语言预留的标识符,它们具有特殊的意义,不能用作变量名、类名或方法名。了解和掌握Java的关键字对于学习和编写Java代码至关重要。 1. `public`: 这个关键字用于声明类、接口或方法可以被任何...
在Java编程语言中,关键字是具有特殊含义的保留词汇,它们是编程语法的重要组成部分。下面是对Java关键字的详细总结,按照给出的部分内容进行排列: ...了解和熟练使用这些关键字是成为一名合格的Java程序员的基础。