JAVA基础-U7 面向对象编程(基础部分)-方法重载
方法重载(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
注意事项和使用细节
- 方法名:必须相同
- 参数列表:必须不同(参数类型或个数、顺序,至少有一项不同,参数名无要求)
- 返回类型:无要求
练习
- 编写程序,类Methods中定义三个重载方法并调用。方法名为m。三个方法分别接收一个int参数,两个int参数,一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类main方法中分别用参数调用这三个方法。
- 在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 面向对象编程(基础部分)-方法重载相关推荐
- JAVA基础-U7 面向对象编程(基础部分)-作用域
作用域 在java编程中,主要的变量就是属性(成员变量)和局部变量. 全局变量:也就是属性,作用域为整个类体.可以不赋值直接使用,因为有默认值. 局部变量:一般指的是在成员方法中定义的变量(除了属性之 ...
- JAVA基础-U7 面向对象编程(基础部分)-构造器
构造方法/构造器 基本语法 构造方法又叫构造器(constructor),是类的一种特殊方法,它的主要作用是对新对象的初始化 [修饰符] 方法(形参列表){方法体; } 构造器的修饰符可以默认,也可以 ...
- JAVA基础-U7 面向对象编程(基础部分)-可变参数
可变参数 基本概念 java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法 本质上是将其当成数组对待 基本语法 访问修饰符 返回类型 方法名(数据类型... 形参名){} 快速入门 ...
- JAVA基础-U7 面向对象编程(基础部分)-成员方法
成员方法 快速入门 添加speak成员方法,输出"我是一个好人" 添加cal01成员方法,可以计算从1+-+1000的结果 添加cal02成员方法,该方法可以接受一个数n,计算从1 ...
- JAVA基础-U7 面向对象编程(基础部分)-类与对象
类与对象(OOP) 快速入门 类是抽象的,概念的,代表一类事物.即它是数据类型 对象是具体的,实际的,代表一个具体事物.即它是实例 类是对象的模版,对象是类的一个个体,对应一个实例 养猫问题: 张老太 ...
- JAVA基础-U7 面向对象编程(基础部分)-递归
方法递归调用 递归能解决什么问题 各种数学问题:8皇后问题.汉诺塔.阶乘问题.迷宫问题,球和篮子的问题- 各种算法问题:快排.归并排序.二分查找.分治算法- 用栈解决的问题(递归代码比较简洁) 递归调 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...
- 一文带你深入理解【Java基础】· 面向对象编程(下)②代码块、final和abstract
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
最新文章
- 技术有时间衰减因子.
- WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具
- 《系统集成项目管理工程师》必背100个知识点-35核实的可交付成果和验收的可交付成果...
- VC++ 中 try-catch-finally 语句 如何在获取正常信息是写一些操作语句
- Java微信订单查询
- pyqt2_官网教程
- OD汇编指令集(不断更新)
- 找不到可安装的isam怎么解决_安装系统找不到硬盘怎么办
- eclipse在线安装ivy和ivyde
- 如何在 Mac 上的调度中心中查看打开的窗口和空间?
- html5中webSql的应用
- 博弈论——拍卖会(Auctions)
- python中的属性是什么_什么是python类属性
- stm32花式点流水灯
- 创品牌强农精品培育消费引领 国稻种芯百团计划行动发布
- STM32模拟I2C程序
- [转] Phun,让人惊讶的小程序
- Google广告账号的四种有效申请方法
- 隐藏在发表的宏基因组文章背后故事,如何发掘和学习
- 关于野火开发板stm32f103VET(拂晓开发板)DAPCMSIS-DAP下载烧录程序失败的问题及解决