Java 基础总结--this关键字
来源:互联网 发布:表达无网络的图片大全 编辑:程序博客网 时间:2024/05/29 16:52
其实this主要要三种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
package com.zghw.base;/** * this关键字的用法 * * @author zghw * */public class ThisX {private String name;// 1.this 在方法的内部使用this// 表示对“调用方法的那个对象”的引用public ThisX(String name) {// 如果使用的ThisX a = new ThisX("111");// 那么this 就相当于a引用// 以下代码等同于// a.name="111";this.name = name;}public void testThis() {// 每个非静态方法内部都能获取对当前对象的引用。这个引用是编译器偷偷的"传入"的。// 并且方法的第一个参数就是this// this调用成员变量System.out.println(this.name);// this 在不必要时可以省略System.out.println(name);// 调用该对象的方法时无须使用this,直接调用f();}// 2. this的主要用途 当需要返回对当前对象的引用时就常常在return语句中这样写:// 在调用该方法时就可以多次调用该方法// b.getThisX().getThisX().getThisX()public ThisX getThisX() {this.name = this.name + "_";return this;}public void f() {}// 3.this作为参数传入外部方法调用时,public void eat(Apple apple) {apple.get();}static class Peeler {static Apple peel(Apple apple) {// do somethingreturn apple;}}class Apple {Apple get() {// this作为参数传入外部方法调用时return Peeler.peel(this);}}public static void main(String args[]) {ThisX a = new ThisX("111");ThisX b = new ThisX("222");a.testThis();b.testThis();//ThisX c = b.getThisX().getThisX().getThisX();c.testThis();b.testThis();c.eat(a.new Apple());}}
0 0
- Java 基础总结--this关键字
- Java基础: 关键字 this
- java基础:this关键字
- java基础 this 关键字!
- Java基础------this关键字
- Java基础-this关键字
- Java this关键字总结
- Java基础学习总结(9)——this关键字
- java基础学习总结——this关键字
- java基础学习总结——this关键字
- java基础总结07-面向对象3(this关键字)
- java基础技术知识点总结——super、this关键字
- java基础学习总结——this关键字
- java基础学习总结——this关键字
- java基础学习总结——this关键字
- java基础学习总结——this关键字
- java基础学习总结——this关键字
- JAVA中关键字this总结
- Runtime_实现计算一个Button被点击次数
- 基于Android arm64 Linux got 调试
- AssetDatabase文档翻译
- Atitit.java jna 调用c c++ dll的原理与实践 总结 v2 q27
- java web学习(进阶篇)五 Spring中的事件
- Java 基础总结--this关键字
- 深入理解Java虚拟机----(一)走近java
- 深入理解Java虚拟机----(二)内存区域与内存溢出异常
- UVA 10047 - The Monocycle(BFS)
- Atitit .jvm 虚拟机指令详细解释
- java中“==”和equal()的区别以及equal()的重载
- activiti学习笔记(1)
- FreeMarker
- 面试笔试杂项积累-leetcode 166-170