【JavaSE】方法重载基本使用

简介: 【JavaSE】方法重载基本使用

方法重载(OverLoad)

1. 基本介绍

  • java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!
  • 比如:System.out.println(); out 是 PrintStream 类

2. 重载的好处

1) 减轻了起名的麻烦
2) 减轻了记名的麻烦

3. 快速入门案例

OverLoad01.java

  • 案例:类:MyCalculator 方法:calculate

1) calculate(int n1, int n2) //两个整数的和
2) calculate(int n1, double n2) //一个整数,一个 double 的和
3) calculate(double n2, int n1)//一个 double ,一个 Int 和
4) calculate(int n1, int n2,int n3)//三个 int 的和

public class OverLoad01 {
    public static void main(String[] args) {
        MyCalculator mc = new MyCalculator();
        System.out.println(mc.calculate(1, 2));
        System.out.println(mc.calculate(1, 2.1));
        System.out.println(mc.calculate(1.1, 2));
        System.out.println(mc.calculate(1,2,3));
    }
}

class MyCalculator  {

    //下面的四个 calculate方法构成了重载
    //两个整数的和
    public int calculate(int n1, int n2)  {
        System.out.println("calculate(int n1, int n2) 被调用");
        return n1 + n2;
    }
    
    //没有构成方法重载, 仍然是错误的,因为是方法的重复定义
    // public void calculate(int n1, int n2)  {
    //     System.out.println("calculate(int n1, int n2) 被调用");
    //     int res =  n1 + n2;
    // } 

    //看看下面是否构成重载, 没有构成,而是方法的重复定义,就错了
    // public int calculate(int a1, int a2)  {
    //     System.out.println("calculate(int n1, int n2) 被调用");
    //     return a1 + a2;
    // } 
    
    //一个整数,一个double的和
    public double calculate(int n1, double n2) {
        return n1 + n2;
    }
    //一个double ,一个Int和 
    public double calculate(double n1, int n2) {
        System.out.println("calculate(double n1, int n2) 被调用..");
        return n1 + n2;
    }
    //三个int的和
    public int calculate(int n1, int n2,int n3) {
        return n1 + n2 + n2;
    }

}

在这里插入图片描述

4. 注意事项和使用细节

在这里插入图片描述

5. 练习题

在这里插入图片描述

  1. 编写程序,类Methods中定义三个重载方法并调用。方法名为m。三个方法分别接收一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在主类的main 0)方法中分别用参数区别调用三个方法。OverLoadExercise.java
public class OverLoadExercise {
    public static void main(String[] args) {
        //在主类的main ()方法中分别用参数区别调用三个方法
        Methods method = new Methods();
        method.m(10);//100
        method.m(10, 20);//200
        method.m("兮动人");//字符串信息


    }
}

class Methods{
    //分析
    //1 方法名 m
    //2 形参 (int)
    //3.void
    public void m(int n) {
        System.out.println("平方=" + (n * n));
    }

    //1 方法名 m
    //2 形参 (int, int)
    //3.void
    public void m(int n1, int n2) {
        System.out.println("相乘=" + (n1 * n2));
    }

    //1 方法名 m
    //2 形参 (String)
    //3.void
    public void m(String str) {
        System.out.println("传入的str=" + str);
    }
}

在这里插入图片描述

  1. 在Methods类,定义三个重载方法max(),第一个方法,返回两个int值中的最大值,第二个方法,返回两个double值中的最大值,第三个方法,返回三个double值中的最大值,并分别调用三个方法。
public class OverLoadExercise { 

    //编写一个main方法
    public static void main(String[] args) {

        Methods method = new Methods();

        //测试
        System.out.println(method.max(10, 24)); // 24
        System.out.println(method.max(10.0, 21.4)); // 21.4
        System.out.println(method.max(10.0, 1.4, 30.0)); // 30.0
    }
}

class Methods {
    //分析
    //1 方法名 max
    //2 形参 (int,int) 
    //3.int
    public int max(int n1, int n2) {
        return n1 > n2 ? n1 : n2;
    }

    //分析
    //1 方法名 max
    //2 形参 (double,double) 
    //3.double
    public double max(double n1, double n2) {
        return n1 > n2 ? n1 : n2;
    }

    //分析
    //1 方法名 max
    //2 形参 (double,double,double) 
    //3.double
    public double max(double n1, double n2, double n3) {
        
        //求出n1 和  n2的最大值
        double max1 = n1 > n2 ? n1 : n2;
        return max1 > n3 ? max1 : n3;
    }

}    

在这里插入图片描述

目录
相关文章
|
弹性计算 虚拟化 异构计算
2023阿里云GPU服务器租用价格表(包月/按小时/学生价)
2023阿里云GPU服务器租用价格表(包月/按小时/学生价)阿里云GPU服务器租用价格表包括包年包月价格、一个小时收费以及学生GPU服务器租用费用,阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折优惠,阿里云百科分享阿里云GPU服务器租用价格表、GPU一个小时多少钱以及学生GPU服务器收费价格表
1177 0
|
11月前
|
存储
「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器
本篇将带你实现一个颜色选择器应用。用户可以从预设颜色中选择,或者通过输入颜色代码自定义颜色来动态更改界面背景。该应用展示了如何结合用户输入、状态管理和界面动态更新的功能。
265 3
「Mac畅玩鸿蒙与硬件34」UI互动应用篇11 - 颜色选择器
|
应用服务中间件 nginx Docker
【2023】高可用Harbor部署
【2023】高可用Harbor部署
813 0
QT设置widget背景图片
该内容介绍如何在Qt中为控件添加背景图片。主要方法包括:1) 在样式表中使用`border-image`属性指定控件及其背景图片;2) 使用调色板`QPalette`设置图片,但可能导致窗口显示不下;3) 在`paintEvent`中绘制图片,适合自定义绘图但不适用于子窗口;4) 通过覆盖一个大小与窗口相同的`QLabel`来设置背景图片,可实现动态背景。推荐使用样式表设置背景,简单高效且适合子窗口。
811 3
|
数据可视化 数据管理 大数据
【开源项目】轻量元数据管理解决方案——Marquez
【开源项目】轻量元数据管理解决方案——Marquez
747 57
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
JavaScript 前端开发 索引
编程笔记 html5&css&js 067 JavaScript String数据类型
编程笔记 html5&css&js 067 JavaScript String数据类型
107 1
|
存储 监控 安全
【网络安全】等保测评-安全物理环境
【网络安全】等保测评-安全物理环境
656 0
|
小程序 IDE 开发工具
【开发者藏宝阁】汇聚每月最新产品动态(2023年1月月刊)
【开发者藏宝阁】汇聚每月最新产品动态(2023年1月月刊)
155 0
下一篇
开通oss服务