首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第一章:面向对象思想概述
第二章:类和对象
第三章:类的定义
第四章:对象的创建和使用
第五章:关键字 package 和 import
第六章:类的成员之一:属性
第七章:类的成员之二:方法
第八章:可变参数
第九章:方法重载( overload )
第十章:方法的值传递机制
第十一章:递归
第十二章:对象数组
第十三章:OOP特征之一:封装
第十四章:类的成员之三:构造器
第十五章:JavaBean
第十六章:关键字 this
当前位置:
首页>>
技术小册>>
Java语言基础5-面向对象初级
小册名称:Java语言基础5-面向对象初级
9.1 概念 方法重载:在同一类中,允许存在多个同名方法,只要它们的参数个数或参数类型不同即可。 9.2 特点 和返回值类型无关,只看参数列表,且参数列表必须不同(参数个数或参数类型)。 调用的时候,根据方法参数列表的不同来区别。 9.3 应用示例 示例: ```bash package com.github.overload; /** * @author maxiaoke.com * @version 1.0 */ public class Array { /** * 返回两个整数的和 * * @param num1 num1 * @param num2 num2 * @return int */ public int add(int num1, int num2) { return num1 + num2; } /** * 返回三个整数的和 * * @param num1 num1 * @param num2 num2 * @param num3 num3 * @return int */ public int add(int num1, int num2, int num3) { return num1 + num2 + num3; } /** * 返回两个小数的和 * * @param num1 num1 * @param num2 num2 * @return double */ public double add(double num1, double num2) { return num1 + num2; } } ``` 9.4 方法重载的好处 - 使用方法重载,可以为编程带来方便:让方法的调用者,在调用方法的时候,不需要为了相似的功能去查阅文档,查找各种不同的方法名,降低学习成本,提高开发效率。 - 例如:System.out.println() 方法就是典型的方法重载,其内部声明如下 ```bash public void print(boolean b){} public void print(char c){} public void print(int i){} public void print(long l){} public void print(float f){} public void print(double d){} public void print(char s[]){} public void print(String s){} public void print(Object obj){} public void println(){} public void println(boolean x){} public void println(char x){} ... ``` 9.5 练习 9.5.1 练习1 - 编写程序,定义三个重载方法并调用,方法名为 mOverload 。 - ① 三个方法分别接收一个 int 参数、两个 int 参数和一个 String 参数,分别执行平方运算并输出结果、乘法运算输出结果、以及输出字符串。 - ② 在主类的 main 方法中分别用参数区别调用三个方法。 - 示例: ```bash package com.github.overload.exec; /** * @author maxiaoke.com * @version 1.0 */ public class OverloadDemo1 { /** * 执行平方运算并输出结果 * * @param num */ public void mOverload(int num) { System.out.println((int) Math.pow(num, 2)); } /** * 乘法运算并输出结果 * * @param num1 * @param num2 */ public void mOverload(int num1, int num2) { System.out.println(num1 * num2); } /** * 输出字符串信息 * * @param str str */ public void mOverload(String str) { System.out.println(str); } } ``` ```bash package com.github.overload.exec; /** * @author maxiaoke.com * @version 1.0 */ public class OverloadDemo1Test { public static void main(String[] args) { OverloadDemo1 overloadDemo1 = new OverloadDemo1(); overloadDemo1.mOverload(1); overloadDemo1.mOverload(1, 2); overloadDemo1.mOverload("你好,世界"); } } ``` 9.5.2 练习2 - 定义三个重载方法 max() ,第一个方法求两个 int 值中的最大值,第二个方法求两个 double 值中的最大值,第三个方法求三个 double 值中的最大值,并分别调用这三个方法。 - 示例: ```bash package com.github.overload.exec; /** * @author maxiaoke.com * @version 1.0 */ public class ArrayDemo { /** * 求两个int值的最大值 * * @param num1 num1 * @param num2 num2 * @return int */ public int max(int num1, int num2) { return num1 > num2 ? num1 : num2; } /** * 求两个double值的最大值 * * @param num1 num1 * @param num2 num2 * @return double */ public double max(double num1, double num2) { return num1 > num2 ? num1 : num2; } /** * 求三个double值的最大值 * * @param num1 num1 * @param num2 num2 * @param num3 num3 * @return double */ public double max(double num1, double num2, double num3) { return num1 > num2 ? (num1 > num3 ? num1 : num3) : (num2 > num3 ? num2 : num3); } } ``` ```bash package com.github.overload.exec; /** * @author maxiaoke.com * @version 1.0 */ public class ArrayDemoTest { public static void main(String[] args) { ArrayDemo demo = new ArrayDemo(); int max = demo.max(1, 2); System.out.println("max = " + max); double max1 = demo.max(1.1, 2.2); System.out.println("max1 = " + max1); double max2 = demo.max(1.1, 1.2, 1.3); System.out.println("max2 = " + max2); } } ```
上一篇:
第八章:可变参数
下一篇:
第十章:方法的值传递机制
该分类下的相关小册推荐:
Java语言基础4-数组详解
Java必知必会-Maven初级
Mybatis合辑2-Mybatis映射文件
JAVA 函数式编程入门与实践
Java语言基础3-流程控制
java源码学习笔记
手把手带你学习SpringBoot-零基础到实战
Java必知必会-JDBC
Java语言基础1-基础知识
Java语言基础8-Java多线程
经典设计模式Java版
Java面试指南