博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java this的使用(翻译自Java Tutorials)
阅读量:5992 次
发布时间:2019-06-20

本文共 1272 字,大约阅读时间需要 4 分钟。

原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/11/28/2793257.html

前言

在一个实例方法或者是构造方法中,this引用指向当前的对象---方法调用或者是构造方法调用的对象。你可以在实例化方法或者构造方法中,使用this引用任何成员。

 

在字段中使用this

使用this关键字的最常见的原因,是字段被方法或构造函数的参数隐藏了。

例如,Point类是这样写的:

public class Point {    public int x = 0;    public int y = 0;            //constructor    public Point(int a, int b) {        x = a;        y = b;    }}

但是它也可以这么写:

public class Point {    public int x = 0;    public int y = 0;            //constructor    public Point(int x, int y) {        this.x = x;        this.y = y;    }}

构造方法的每个参数都隐藏了对象的字段---在构造方法里,x是构造方法的第一个参数的局部副本,引用Point字段x,构造方法必须使用this.x.

 

在构造方法使用this

在构造方法里,你可以使用this关键字调用类的另一个构造方法。这种是显式构造方法调用。这里有一个Rectangle类:

public class Rectangle {    private int x, y;    private int width, height;            public Rectangle() {        this(0, 0, 0, 0);    }    public Rectangle(int width, int height) {        this(0, 0, width, height);    }    public Rectangle(int x, int y, int width, int height) {        this.x = x;        this.y = y;        this.width = width;        this.height = height;    }    ...}

这个类有一系列构造方法,每个构造方法初始化Rectangle的部门变量。如果没有为参数提供初始化值,构造方法为每个成员变量提供了默认值。例如,无参构造方法,传入四个值为0的参数,调用四个参数的构造方法,还有两个参数的构造方法,传入两个0的参数,调用四个参数的构造方法。之前说过,编译器是根据参数的个数和类型,决定调用哪个构造方法。

 

如果存在,另一个构造函数的调用必须是构造函数中的第一行。

你可能感兴趣的文章
java 随机数的生成
查看>>
HTML5 五彩圆环Loading加载动画实现教程
查看>>
no suitable HttpMessageConverter found for request type [java.lang.Integer]
查看>>
UNIX环境编程学习笔记(3)——文件I/O之内核 I/O 数据结构
查看>>
Installing your app on your Windows RT device
查看>>
浅谈C# .Net技术面试 , 正在找工作的人一定要看看
查看>>
lua5.1中的setfenv使用
查看>>
C#开发微信门户及应用(16)-微信企业号的配置和使用
查看>>
Mac OS X Yosemite安装盘U盘制作
查看>>
详解 Spring 3.0 基于 Annotation 的依赖注入实现--转载
查看>>
按的第一个greasemonkey插件:评论时可以粘贴啦~~
查看>>
一维数组的遍历 .
查看>>
不可恢复的生成错误mergemod.dll 2.0.2600.0
查看>>
Levenshtein Distance (编辑距离) 算法详解
查看>>
WPF学习笔记 - 在XAML里绑定
查看>>
JAVA中字符串比較equals()和equalsIgnoreCase()的差别
查看>>
深入了解Java虚拟机
查看>>
验证 Xcode 是否来自正规渠道
查看>>
企业视觉-大型电商(制)-高性能的用户视觉性能(1)
查看>>
高效实现 std::string split() API
查看>>