专栏首页Java研发军团Java的this和重载

Java的this和重载

this关键字

普通方法中,this总是指向调用该方法的对象。

构造方法中,this总是指向正要初始化的对象。

总结,其实this主要要三种用法:

1、表示对当前对象的引用!

2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定 义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

重载(Overload)

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造方法)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。

重载规则

被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);

被重载的方法可以改变返回类型;

被重载的方法可以改变访问修饰符;

被重载的方法可以声明新的或更广的检查异常;

方法能够在同一个类中或者在一个子类中被重载。

无法以返回值类型作为重载函数的区分标准。

由于上一节已经演示过构造方法的重载,在这里就只演示方法的重载了

如图:

【练习题】构造方法的重载:

定义一个名为Vehicles(交通工具)的基类,该类中应包含String类型的成员属性color(颜色),还应包含成员方法run(行驶,在控制台显示“小汽车已经开动了”),并编写2构造方法

无参构造:调用run方法

有参构造:调用无参构造,并且有个color参数为string类型,并且将参数赋值给成员变量,无参构造最后一句代码为System.out.println("小汽车是" + this.color + "颜色");

按照下面格式输出(请都使用this关键字调用类成员)。

本文分享自微信公众号 - Java研发军团(ityuancheng),作者:猿程之家

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java之手写HashMap(上)

    前面手写了MyArrayList以及MyLinkedList了,现在写的hashmap主要小编只采取数组加链表的方式来写了,那么现在就废话不多说了,还是和以前一...

    用户5224393
  • Spring中很重要的ContextLoderListener类,你理解了吗?

    由于ContextLoderListener实现了ServletContextListener,所以最先执行初始化方法contextInitianized进行初...

    用户5224393
  • 分布式id生成器

    作者:CoderZS juejin.im/post/5d8882d8f265da03e369c063

    用户5224393
  • 记一个复杂组件(Filter)的从设计到开发

    貌似在面试中,你如何设计一个 react/vue 组件,貌似已经是司空见惯的问题了。本文不是理论片,更多的是自己的一步步思考和实践。文中会有很多笔者的思考过程,...

    Nealyang
  • JS实现简易的计算器

    自认脑袋不够大,就实现一个普通版本的吧(支持正负数加减乘除等基本连续的运算,未提供括号功能)

    书童小二
  • React的Refs方法获取DOM实例 和 访问子组件方法及属性

    React 支持一种非常特殊的属性 Ref ,你可以用来绑定到 render() 输出的任何组件上。

    小弟调调
  • Spring5 源码学习 (5) ConfigurationClassPostProcessor (上)

    Spring5 源码学习 (4) refresh 方法 中讲到了refresh()方法中的invokeBeanFactoryPostProcessors(bea...

    Coder小黑
  • java之StopWatch源码分析

    计时这个词语在生活中被应用的很普遍,体育竞赛时频繁出现的秒表,发令信号一经发出,秒表就在滴答滴答流转开始计时了,秒表此时的作用就是计时的代名词,在我们编写代码的...

    后端Coder
  • 深入PHP FTP类的详解

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是 Passive (也就是PASV,被动方式)。...

    Sindsun
  • 将Chrome设置为Jupyter_notebook的默认浏览器

    我们知道jupyter_notebook是在浏览器中打开的,这里建议大家都使用Chrome浏览器打开,因为其他浏览器可能会出现一些不兼容的问题。如果你电脑上有C...

    张俊红

扫码关注云+社区

领取腾讯云代金券