方法重载(Overload)

  • 基本介绍

    java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致

    eg. System.out.println(); //out是PrintStream类型

  • 重载的好处

    • 减轻了起名的麻烦
    • 减轻了记名的麻烦

快速入门
public class Overload01{public static void main(String[] args){MyCalculator myCalculator = new MyCalculator();System.out.println(myCalculator.calculate(1, 1));//两个整数的和System.out.println(myCalculator.calculate(1, 1.1));//一个整数,一个double的和System.out.println(myCalculator.calculate(1.1, 1));//一个double,一个int的和System.out.println(myCalculator.calculate(1, 1, 1));//三个int的和}
}class MyCalculator{//两个整数的和public int calculate(int n1, int n2){return n1 + n2;}//一个整数,一个double的和public double calculate(int n1, double n2){return n1 + n2;}//一个double,一个int的和public double calculate(double n1, int n2){return n1 + n2;}//三个int的和public int calculate(int n1, int n2, int n3){return n1 + n2 + n3;}
}
2
2.1
2.1
3

注意事项和使用细节
  1. 方法名:必须相同
  2. 参数列表:必须不同(参数类型或个数、顺序,至少有一项不同,参数名无要求)
  3. 返回类型:无要求

练习
  1. 编写程序,类Methods中定义三个重载方法并调用。方法名为m。三个方法分别接收一个int参数,两个int参数,一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类main方法中分别用参数调用这三个方法。
  2. 在Methods类中,定义三个重载方法max(),第一个方法,返回两个int值中的最大值,第二个方法,返回两个double值中的最大值,第三个方法,返回三个double中的最大值。在主类main方法中分别用参数调用这三个方法。
public class Overload02{public static void main(String[] args){Methods methods = new Methods();methods.m(2);methods.m(1, 2);methods.m("hello world!");System.out.println("max: " + methods.max(1, 2));System.out.println("max: " + methods.max(1.1, 2.2));System.out.println("max: " + methods.max(1.1, 2.2, 3.3));}
}class Methods{//执行平方运算并输出结果public void m(int n1){System.out.println(n1 * n1);}//相乘并输出结果public void m(int n1, int n2){System.out.println(n1 * n2);}//输出字符串信息public void m(String s){System.out.println(s);}//第一个方法,返回两个int值中的最大值public int max(int n1, int n2){return n1 > n2 ? n1 : n2;}//第二个方法,返回两个double值中的最大值,public double max(double n1, double n2){return n1 > n2 ? n1 : n2;}//第三个方法,返回三个double中的最大值。public double max(double n1, double n2, double n3){return (n1 > n2 ? n1 : n2) > n3 ? (n1 > n2 ? n1 : n2) : n3;}}
4
2
hello world!
max: 2
max: 2.2
max: 3.3

JAVA基础-U7 面向对象编程(基础部分)-方法重载相关推荐

  1. JAVA基础-U7 面向对象编程(基础部分)-作用域

    作用域 在java编程中,主要的变量就是属性(成员变量)和局部变量. 全局变量:也就是属性,作用域为整个类体.可以不赋值直接使用,因为有默认值. 局部变量:一般指的是在成员方法中定义的变量(除了属性之 ...

  2. JAVA基础-U7 面向对象编程(基础部分)-构造器

    构造方法/构造器 基本语法 构造方法又叫构造器(constructor),是类的一种特殊方法,它的主要作用是对新对象的初始化 [修饰符] 方法(形参列表){方法体; } 构造器的修饰符可以默认,也可以 ...

  3. JAVA基础-U7 面向对象编程(基础部分)-可变参数

    可变参数 基本概念 java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法 本质上是将其当成数组对待 基本语法 访问修饰符 返回类型 方法名(数据类型... 形参名){} 快速入门 ...

  4. JAVA基础-U7 面向对象编程(基础部分)-成员方法

    成员方法 快速入门 添加speak成员方法,输出"我是一个好人" 添加cal01成员方法,可以计算从1+-+1000的结果 添加cal02成员方法,该方法可以接受一个数n,计算从1 ...

  5. JAVA基础-U7 面向对象编程(基础部分)-类与对象

    类与对象(OOP) 快速入门 类是抽象的,概念的,代表一类事物.即它是数据类型 对象是具体的,实际的,代表一个具体事物.即它是实例 类是对象的模版,对象是类的一个个体,对应一个实例 养猫问题: 张老太 ...

  6. JAVA基础-U7 面向对象编程(基础部分)-递归

    方法递归调用 递归能解决什么问题 各种数学问题:8皇后问题.汉诺塔.阶乘问题.迷宫问题,球和篮子的问题- 各种算法问题:快排.归并排序.二分查找.分治算法- 用栈解决的问题(递归代码比较简洁) 递归调 ...

  7. [Java入门笔记] 面向对象编程基础(二):方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...

  8. 一文带你深入理解【Java基础】· 面向对象编程(下)②代码块、final和abstract

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  9. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

最新文章

  1. 技术有时间衰减因子.
  2. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
  3. 《系统集成项目管理工程师》必背100个知识点-35核实的可交付成果和验收的可交付成果...
  4. VC++ 中 try-catch-finally 语句 如何在获取正常信息是写一些操作语句
  5. Java微信订单查询
  6. pyqt2_官网教程
  7. OD汇编指令集(不断更新)
  8. 找不到可安装的isam怎么解决_安装系统找不到硬盘怎么办
  9. eclipse在线安装ivy和ivyde
  10. 如何在 Mac 上的调度中心中查看打开的窗口和空间?
  11. html5中webSql的应用
  12. 博弈论——拍卖会(Auctions)
  13. python中的属性是什么_什么是python类属性
  14. stm32花式点流水灯
  15. 创品牌强农精品培育消费引领 国稻种芯百团计划行动发布
  16. STM32模拟I2C程序
  17. [转] Phun,让人惊讶的小程序
  18. Google广告账号的四种有效申请方法
  19. 隐藏在发表的宏基因组文章背后故事,如何发掘和学习
  20. 关于野火开发板stm32f103VET(拂晓开发板)DAPCMSIS-DAP下载烧录程序失败的问题及解决

热门文章

  1. 普通索引和唯一索引的区别
  2. jqprint打印的简单使用
  3. 【深入了解ADC:模数转换器的工作原理及应用】
  4. 数据建模必知的六大步骤
  5. linux基础[1](重置root密码)
  6. Ubuntu /etc/profile权限不够
  7. java switch enum对象_Java枚举类(enum)5种常见用法和3种内部方法,详细附代码
  8. python各位大佬们的绘画,说不定有你想要的!
  9. x264源码解读(二)- VCL和NAL那些事
  10. kali 登录密码遗忘/kali登录密码重置