Java 方法的重载与参数传递详解

作者:hmm 时间:2023-10-19 18:50:46 

方法重载概述

方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法互相构成重载

* 多个方法在同一个类中

* 多个放方法具有相同方法名

* 多个方法的参数不相同,类型不同或数量不同

方法重载特特点

* 重载仅对应方法的定义,与方法的调用无关,调用方法参照标准格式

* 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判断两个方法是否构成重载

示例:

public class MethodDemo{
        public static float  fn(int a){
           //方法体
        }
public static int  fn(int a,int b){
           //方法体
         }
}

方法重载练习

需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)

思路:

1.定义比较两个数字的是否相同的方法compare()方法,参数选择两个int型参数

public static boolean compare(int a,int b){
         return a==b;
}

2.定义对应的重载方法,变更对应的参数类型,参数变更为两个long型参数

public static boolean compare(long a,long b){
         return a==b;
}

3.定义所有重载方法,两个byte类型与两个short类型参数

public static boolean compare(byte a,byte b){
        //代码片段
}
public static boolean compare(short a,short b){
         //代码片段
}

4. 完成方法调用,运行测试结果

public static void main(String args[ ]){
      system.out.println(cpmpare(10,20));
}

示例代码:


public class hmm081 {
   public static void main(String[] args) {
       //调用方法
       System.out.println(compare(10,20));
       //强转
       System.out.println(compare((byte)10,(byte)20));
       System.out.println(compare((long)10,(long)10));
   }
   public static boolean compare(int a,int b){
       System.out.println("int");
       return a==b;
   }
   public static boolean compare(long a,long b){
       System.out.println("long");
       return a==b;
   }
   public static boolean compare(byte a,byte b){
       System.out.println("byte");
       return a==b;
   }
   public static boolean compare(short a,short b){
       System.out.println("short");
       return a==b;
   }
}

方法参数传递

方法参数传递(基本类型)

对于基本数据类型参数,形式参数的改变,不影响实际参数的值

Java 方法的重载与参数传递详解

 虽然形参change()内的number改变,但main()参数不变,不影响实际参数值,所以第二次输出结果还是100

方法参数传递(引用类型)

对于引用类型的参数,形式参数的改变,影响实际参数的值,如数组。

Java 方法的重载与参数传递详解

Java 方法的重载与参数传递详解

来源:https://blog.csdn.net/m0_68089732/article/details/123989337

标签:Java,方法重载,方法传参数
0
投稿

猜你喜欢

  • 详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用

    2022-11-07 14:09:54
  • java split()使用方法解析

    2023-10-18 01:59:23
  • 简介Java的Hibernate框架中的Session和持久化类

    2023-04-17 14:41:13
  • Monaco Editor实现sql和java代码提示实现示例

    2023-01-31 16:59:48
  • C++数组指针和二维数组详情

    2022-03-31 21:11:07
  • Spring Security OAuth2 实现登录互踢的示例代码

    2023-09-04 19:09:28
  • 解析C++中的for循环以及基于范围的for语句使用

    2023-11-16 09:59:58
  • springboot 集成redission 以及分布式锁的使用详解

    2023-06-20 06:48:43
  • javaweb文件打包批量下载代码

    2022-10-24 17:10:17
  • Unity实现菜品识别的示例代码

    2023-06-11 22:16:10
  • C#如何实现调取钉钉考勤接口的功能

    2023-09-14 17:31:47
  • idea 设置鼠标悬停(放上)弹出注释的方法

    2022-03-19 21:10:52
  • Jenkins安装以及邮件配置详解

    2023-04-20 12:42:39
  • Kotlin编程基础语法编码规范

    2023-06-20 16:50:07
  • 详谈hibernate,jpa与spring data jpa三者之间的关系

    2022-08-04 22:35:57
  • C#给Word不同页面设置不同背景

    2021-07-20 01:28:16
  • Android实现卫星菜单效果

    2021-12-12 23:44:28
  • SpringBoot整合Web之AOP配置详解

    2022-01-17 21:38:11
  • Android获取手机通讯录、sim卡联系人及调用拨号界面方法

    2021-07-02 00:41:07
  • C# DataTable 转换为 实体类对象实例

    2021-12-25 02:14:51
  • asp之家 软件编程 m.aspxhome.com