博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关键字this引用
阅读量:6502 次
发布时间:2019-06-24

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


要点提示: 关键字this引用独享自身。他也可以在构造方法内部调用另一个类的其他构造方法。

关键字this是指向调用对象本身的引用名。可以用this关键字引用对象的实例成员。复制代码

例如:下面a的代码使用this来显示地引用独享的radius以及调用他的getArea()方法。this引用通常可以省略掉的,如b所示。然而,在引用隐藏数据域的以及调用一个重载的构造方法的时候,this引用是必须的。

//a:public class Circle{    private double radius;    .....    public double getArea() {        return this.radius*this.radius*Math.PI;    }    public String toString() {        return "radius"+this.radius+"area"+this.getArea();    }}//b:public class Circle{    private double radius;    .....    public double getArea() {        return radius*radius*Math.PI;    }    public String toString() {        return "radius"+radius+"area"+getArea();    }}复制代码

使用this引用隐藏数据域

this关键字可以用于引用类的隐藏数据域。例如在数据域set方法中,经常将数据域名用作参数名。在这种情况下,这个数据域在set方法中被隐藏。为了给他设置新值,需要在方法中引用隐藏的数据域名。隐藏的静态变量可以简单的通过“类名.静态变量”的方式引用。隐藏的实例变量就需要使用关键字this来引用了。public class F {    private int i = 5;    private static double k = 0;    public void setI(int i){        this.i = i;    }    public static void setK(double k) {        F.k = k;    }    //other menthods omitted}复制代码

使用this调用构造方法

关键字this可以用于调用同一个类的另一个构造方法。例如,可以如下改写Circle类:public class Circle {    private double radius;    public Circle(double radius) {        tihs.radius = radius;	//this关键字用于引用所构建的对象的隐藏数据radius    }    public Circle() {        tihs(1.0);				//this关键字用来调用另一个构造方法    }}在第二个构造方法中,this(1.0)这一行调用带double值参数的第一个构造方法。复制代码

注意: Java要求在构造方法中,语句this(参数列表)应在任何其他可执行语句之前出现。

提示: 如果一个类有多个构造方法,最好尽可能的使this(参数列表)实现它们。通常,无参数或参数少的构造方法可以用this(参数列表)调用参数多德构造方法。这样做通常可以简

转载于:https://juejin.im/post/5ad8b546518825672d33b3f8

你可能感兴趣的文章
Jfinal Generator 不需要生成带某个前缀的表名数组的方法
查看>>
struts2中使用标签操作静态方法等
查看>>
熬夜写了一个小游戏,向SpaceX聊表敬意
查看>>
身份证工具类
查看>>
JPA增删改查,
查看>>
apache 开启 gzip 压缩服务
查看>>
python mysql
查看>>
开源 免费 java CMS - FreeCMS1.5-建站向导
查看>>
Selenium的延迟等待
查看>>
jquery 1.6以上版本 全选
查看>>
AppCan 学习
查看>>
flask框架
查看>>
《疯狂Java讲义》学习笔记(十)异常处理
查看>>
Lua(Codea) 中 table.insert 越界错误原因分析
查看>>
ELK 5.x日志分析 (二) Elasticserach 5.2 安装
查看>>
sbt配置nexus仓库
查看>>
一次奇怪的AP注册异常问题处理
查看>>
TableStore: 海量结构化数据分层存储方案
查看>>
Unity 4.x游戏开发技巧集锦(内部资料)
查看>>
自适应网页设计
查看>>