小结

  • 方法重载是指多个方法的方法名相同,但各自的参数不同;
  • 重载方法应该完成类似的功能,参考String的indexOf();
  • 重载方法返回值类型应该相同。

在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,那么,可以把这一组方法名做成同名方法。

例如,在Hello类中,定义多个hello()方法:

class Hello {public void hello() {System.out.println("Hello, world!");}public void hello(String name) {System.out.println("Hello, " + name + "!");}public void hello(String name, int age) {if (age < 18) {System.out.println("Hi, " + name + "!");} else {System.out.println("Hello, " + name + "!");}}

}
这种方法名相同,但各自的参数不同,称为方法重载(Overload)

注意:方法重载的返回值类型通常都是相同的。

方法重载的目的是,功能类似的方法使用同一名字,更容易记住,因此,调用起来更简单。

举个例子,String类提供了多个重载方法indexOf(),可以查找子串:

  • int indexOf(int ch):根据字符的Unicode码查找;
  • int indexOf(String str):根据字符串查找;
  • int indexOf(int ch, int fromIndex):根据字符查找,但指定起始位置;
  • int indexOf(String str, int fromIndex)根据字符串查找,但指定起始位置。

试一试:

// String.indexOf()
public class Main {public static void main(String[] args) {String s = "Test string";int n1 = s.indexOf('t');int n2 = s.indexOf("st");int n3 = s.indexOf("st", 4);System.out.println(n1);System.out.println(n2);System.out.println(n3);}
}

面向对象基础——方法重载相关推荐

  1. php版本哪个没有面向对象,php面向对象的方法重载两种版本比较

    多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数. PHP4 中仅仅实现了面向对象的部分的.简单的功能,而 PHP ...

  2. java基础-方法重载

    **方法重载:**同一个类方法名相同,参数列表个数或参数不同即可 口诀: "两同一不同":同一个类,相同方法名 参数列表不同:参数个数不同,参数类型不同,参数顺序不同 **注意:* ...

  3. Java基础方法重载的要求

    1.方法重载又被称为:overload 2.什么时候考虑使用方法重载? 功能相似的时候,尽可能然方法名相同 [但是:功能不同/不相似的时候,尽可能让方法名不同] 3.什么条件满足之后构成了方法重载? ...

  4. java基础—方法重载(overload)

    一.方法的重载 方法名一样,但参数不一样,这就是重载(overload). 所谓的参数不一样,主要有两点:第一是参数的个数不一样,第二是参数的类型不一样.只要这两方面有其中的一方面不一样就可以构成方法 ...

  5. 面向对象基础——方法

    本文参考链接 目录 小结 private方法 this变量 可变参数 参数绑定 小结 方法可以让外部代码安全地访问实例字段: 方法是一组执行语句,并且可以执行任意逻辑: 方法内部遇到return时返回 ...

  6. 面向对象基础+构造方法+重载练习

    一.定义一个计算器:它的功能有加,减,乘,除,累加,阶乘,幂,平方 package com.moju;public class Computer {//定义一个计算器:它的功能有// 加,减,乘,除, ...

  7. JAVA基础-U7 面向对象编程(基础部分)-方法重载

    方法重载(Overload) 基本介绍 java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致 eg. System.out.println(); //out是PrintStream类型 ...

  8. JavaSE——面向对象基础(思想、类与对象、构造方法、重载、匿名对象)

    第1节 面向对象基础 一.面向对象思想 1.1 概述 面向对象(Object Oriented)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算 ...

  9. Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)

    Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...

最新文章

  1. 独家 | 机器学习中的四种分类任务(附代码)
  2. 1、虚拟机内存管理、运行时数据区、线程共享区、Java堆、新生代、老年代、Eden区域分配、方法区、线程独占区、虚拟机栈
  3. wpf的tabcontrol获取当前选中的名字_技巧:ANSA中如何快速批量修改PID名字
  4. python中history()_keras中的History对象用法
  5. 【Eclipse 插件】Implementors
  6. java 加上天数_java日期时间加上天数
  7. 程序员必备英语单词册
  8. 1971年中国的预警机就上天了
  9. 全年营业额怎么计算_年度利润总额怎么算?
  10. 台式计算机连接投影仪无信号,投影仪连接电脑没反应 电脑连接投影仪无信号解决办法...
  11. iis8.0php套件包,iis 8.0 express-IIS8.0安装包下载 官方免费版--pc6下载站
  12. 分析亚马逊竞争对手Listing的技巧与操作步骤
  13. [转] ThreeJS中,那些会让阴影失效的操作
  14. 微信公众平台配置——URL、Token和JS安全域名
  15. Zotero文献同步
  16. 江苏小学计算机面试题目,2019下半年江苏省小学信息技术教师资格证面试试题(精选)(三)...
  17. HTML3/CSS基础
  18. 创建Predix UAA(User Account and Authentication)
  19. ThinkPad T61 安装XP系统后总是提示“PC内存控制器”的问题
  20. 傅老师课堂:Oracle高级应用之解锁表

热门文章

  1. 二维数组(图像)转变成3通道图
  2. 投简历一直没有回应,原因竟然是...
  3. RK3288下添加PCF8563 RTC支持
  4. ASE:空间分析、空间统计及空间计量经典论文系列推文概述
  5. java转移oraclr数据_Oracle转义 - JAVA_NINA的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. CSS中background-size的cover属性
  7. 20155314 2016-2017-2 《Java程序设计》第9周学习总结
  8. 互联网公司为什么普遍996而不是666
  9. 2021年山东大学python与大数据分析期末试题回忆
  10. 通过HWND取得pid以及HANDLE