• 【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;
    	}
    
    }	
    

    在这里插入图片描述

    本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15618133.html

  • 相关阅读:
    C函数调用
    C语言的起源
    使用对象流将数据以对象形式进行读写
    使用File类新建一个文本文件
    Windows下架设本机上Subversion服务器
    本地svn版本管理搭建
    ExtJs-第一讲
    找工作经历
    浅谈HashMap的实现原理(转载)
    异常
  • 原文地址:https://www.cnblogs.com/xdr630/p/15618133.html
Copyright © 2020-2023  润新知