this:代表对象本身(已经存在对象、即将创建的对象 -->操作对象)
1、this.属性: 区分属性与局部变量同名
2、this.方法(实参) :成员方法间相互调用
3、this([实参]) :构造器首行,构造器之间相互调用
4、this单独使用: 经常用于比较或者查看hashcode
注意:每个成员方法|构造器隐式包含this参数
1. this:代表对象本身,谁调用代表谁
2. this不能直接使用在静态方法中
3. 当前类中,类.this可以省略。
4. 构造器中避免出现递归调用,解决方法:至少有一个方法没有this([])
解析一、
package com.zad.my_this; /** * 每个成员方法|构造器隐式包含this参数 * this: 代表对象本身,谁调用代表谁 * this不能使用在静态方法中 * 1、this.属性 :访问对象的属性 ,区分 形参与属性同名 * 2、this.方法([实参]) :成员方法调用 * 3、this([实参]) : 构造器重载时,相互调用 * 注意:必须放在构造器首行 * 4、this 单独使用时,用于比较 * @author zhongaidong */ public class ThisDemo01 { public int n = 0; public String str = "abc"; // 对对象进行了初始化 ThisDemo01() { // this.属性 // /*ThisDemo01.this.*/n = 20; // 构造器首行 this(20); } ThisDemo01(int n) { // this.属性 ThisDemo01.this.n = n; System.out.println(n); } public void p() { // this.方法([实参]) this.test(); } public void test(/* ThisDemo01 this */) { this.n = 30; System.out.println(this); } public static void main(String[] args) { ThisDemo01 demo = new ThisDemo01(); System.out.println(demo + "-->"); System.out.println(demo.n); demo.test(); System.out.println(demo.n); // this 不能直接使用在静态方法中 // ThisDemo01 dem02 = this; } }
解析二、
package com.zad.my_this; /** * 构造器中避免出现递归调用 * 解决方法:让至少一个方法没有this([]) * @author zhongaidong */ public class ThisDemo02 { public int n = 0; public String str = "abc"; ThisDemo02(){ this(20); } ThisDemo02(int n){ this(n,"30"); } ThisDemo02(int n, String str){ // this(n); --> 这样会导致递归调用 this.n = n; this.str = str; } public static void main(String[] args){ } }
解析三、
package com.zad.my_this; /** * this 单独使用时,用于比较 * * @author zhongaidong */ public class ThisDemo03 { public static void main(String[] args) { Book b1 = new Book("test",20); Book b2 = new Book("test",20); System.out.println(b1 == b2); System.out.println(b1.equals(b2)); } } // 图书上架,业务规则:名称相同 + 价格相同 class Book{ public String name; public double price; public Book(){ } public Book(String name, double price){ this.name = name; this.price = price; } // 比较内容相同 public boolean equals(/* Book this, */ Book b2){ // 地址相同,内容一定相同 if(this == b2){ return true; } // 名称相同 + 价格相同 if(this.name.equals(b2.name) && this.price == b2.price){ return true; } return false; } }
相关推荐
Java面向对象程序设计中的"this"关键字在农业信息系统开发中扮演着重要的角色。在Java编程中,"this"是一个特殊的引用变量,它指向当前对象的实例。在农业信息系统的类结构中,"this"关键字可以帮助开发者更加清晰地...
虽然 JavaScript 最初并不是一种面向对象的语言,但通过其独特的特性——特别是 `this` 关键字和基于原型的继承机制——它可以用来实现面向对象编程。本文将深入探讨 JavaScript 中面向对象编程的核心概念和技术。 ...
在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...
面向对象编程是Java的核心特性,本章节主要探讨了两个关键概念——`this`关键字和`static`关键字。在深入理解这两个概念之前,我们先要明白面向对象编程的基本思想:封装、继承和多态。 `this`关键字在Java中用于...
Java 面向对象编程思想是 Java 编程语言的核心思想之一,通过封装、继承和多态三个特征,实现代码的重用和可维护性。 一、封装 封装是 Java 面向对象编程的三大特征之一,通过 Java 的类来实现数据和操作方法的...
本文将深入探讨`this`关键字的使用,特别是在Java面向对象编程的进阶场景中。 首先,我们来明确`this`是什么。`this`关键字在Java中代表当前对象的引用,即调用当前方法或构造器的那个对象。在实例方法或构造器内部...
JavaScript面向对象编程是指在JavaScript语言中使用面向对象的方法来编写程序。JavaScript是一种高级的、解释型的编程语言,它支持面向对象的编程范式,允许开发者创建对象、使用继承和多态等面向对象的特性。以下是...
在PHP的面向对象编程中,有多个关键字和魔术方法是经常被用到的,它们各有特定的用途和含义。下面将逐一详细介绍。 首先,关键字`final`在PHP面向对象编程中有着重要的作用。使用`final`关键字可以限定一个类不能被...
面向对象编程是Java语言的核心特性之一,而"this"关键字在Java中扮演着至关重要的角色。本章节将深入探讨"this"关键字的概念、用途以及它如何在面向对象编程中发挥作用。 1. this关键字的含义: "this"关键字在...
面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者通过对象来组织代码,提高可读性和可维护性。本指南的第二版深入探讨了JavaScript的面向对象特性,旨在帮助开发者更好...
本文将深入探讨PHP5中的"this"关键字,它是面向对象编程中一个至关重要的概念,用于在类的方法内部引用当前对象。 首先,"this"关键字在PHP5中是一个特殊的变量,它代表了调用该方法的对象实例。当我们在一个类的...
在Java编程语言中,面向对象的概念是核心特性之一。本文将深入探讨`super`和`this`两个关键字的使用,以及访问权限修饰符和方法重写的重要知识点。 首先,`super`关键字代表父类的对象,它用于在子类中访问父类的...
在JavaScript中,面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它允许开发者创建复杂、可重用的代码结构。本指南将深入探讨JavaScript中的面向对象特性,包括类、对象、继承、封装和...
**概念**:封装是面向对象编程的核心之一,它指的是将数据(属性)和方法(行为)绑定在一起,形成一个独立的单元——类。通过这种方式,外部无法直接访问对象内部的数据,只能通过对象提供的方法来操作数据。 **...
面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者以更加模块化、可复用的方式组织代码。下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **...
### JavaScript面向对象编程详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发领域占据着举足轻重的地位。尽管JavaScript本质上是一种基于原型的语言,但它也支持面向对象编程的一些特性,使得...
面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序设计中的实体(如数据和操作)封装在一起,形成了具有独立特性的对象。VBScript(Visual Basic Scripting Edition)作为一门轻量级的脚本...