【Java】学习日记 Day16

2023-05-16

image-20220702163210840

作者|Rickyの水果摊

时间|2022年7月21日


🌈 今日知识点总结

方法重载(Overload)

1. 方法重载的定义

方法重载」是指 Java 允许在同一个类中,定义多个 方法名相同,但是 形参列表不同 的方法。


2. 方法重载的优点

  • 减少方法的取名压力
  • 减少方法的记名压力

3. 方法重载的实例

在「方法重载」中,各方法之间的 形参列表不同 至少包括 以下 3 种情况的 1 种:

  • 形参 个数不同
  • 形参 类型不同
  • 形参 顺序不同(有前提)
1. 形参 「个数不同」:
class Tool{
	public int getSum(int n1,int n2){       //int  int
		return n1 + n2;
	}
  public int getSum(int n1,int n2,int n3){//int  int  int
		return n1 + n2 + n3;   //第2个getSum方法 与 第1个getSum方法的 形参个数不同,构成方法重载
	}
}
2. 形参 「类型不同」:
class Tool{
	public int getSum(int n1,int n2){         //int  int
		return n1 + n2;
	}
  	public double getSum(double n1,double n2){//double  double
		return n1 + n2;             //第2个getSum方法 与 第1个getSum方法的 参数类型不同,构成方法重载
	}
}
3. 形参 「顺序不同」:
class Tool{
  	public double getSum(int n1,double n2){ //int  double
  		return n1 + n2;
	}
 	public double getSum(double n1,int n2){ //double  int
		return n1 + n2;            //第2个getSum方法 与 第1个getSum方法的 形参顺序不同,构成方法重载
	}
}

主类中 调用以上方法:

public MyTools {
	public void main(String[] args) {
		Tool tool = new Tool();
   	 	res1 = tool.getSum(10,20);      //int int
    	res2 = tool.getSum(10,20,30);   //int int int
    	res3 = tool.getSum(11.1,22.2);  //double double
    	res4 = tool.getSum(33.3,10);    //double int 
    	res4 = tool.getSum(10,33.3);    //int double
	}
}

🍉 PS1:形参 「顺序不同」有一定的前提条件,即 两个形参列表之间有不同类型的形参。如下面这个程序中,两个形参列表均为 int int,此时即使交换变量名的顺序,也不构成重构。

class Tool{
	public double getSum(double n1,double n2){ //double  double
  		return n1 + n2;
	}
 	public double getSum(double n2,int n1){ //double  double
		return n2 + n1;      //编译报错,不构成方法重载
	}
}

🍉 PS2:方法重载的判断与 返回值类型 无关(容易出错 💦),因为形参列表如果没有发生改变,编译器就不知道该选择哪一个方法。

class Tool{
	public int getSum(int n1,int n2){ //double  double
  		return n1 + n2;
	}
 	public double getSum(int n1,int n2){ //double  double
		return n1 + n2;        //仅改变返回值类型不构成方法重构,编译报错
	}
}

4. 方法重载的判断技巧

本质:在主类中调用重载方法时,系统需要 清楚的知道 调用哪一个重载的方法。

  • 方法名相同:首先看 2 个方法的方法名是否相同,方法名不同,就不构成重载。

  • 形参列表不同:在方法名一致的前提下,按照定义对比形参列表。

  • 形参名:没有要求。

  • 返回类型:没有要求。

🤔 思考题(重要,必须掌握❗️)

判断下列方法是否构成「方法重载」

//题目1:
public int getSum(int n1,int n2){ ... }
public int getSun(int a,int b){ ... }

//题目2:
public int getSum(int n1,int n2){ ... }
public void getSum(int n1,int n2){ ... }

//题目3:
public double getSum(double n1,int n2){ ... }
public double getSum(int n2,double n1){ ... }

//题目4:
public double getSum(double n1,double n2){ ... }
public double getSum(double n2,double n1){ ... }

//题目5:
public int getSum(int n1,int n2,int n3){ ... }
public void getSum(int n1,int n2){ ... }
  1. ❌ 首先看方法名是否相同,不相同,不构成重载。

  2. ❌ 首先看方法名是否相同,相同;再看形参列表是否相同,相同(与 返回类型无关),不构成重载。

  3. ✅ 首先看方法名是否相同,相同;再看形参列表是否相同,不相同(形参 顺序不同),构成重载。

  4. ❌ 首先看方法名是否相同,相同;再看形参列表是否相同,相同(与 形参名无关),不构成重载。

  5. ✅ 首先看方法名是否相同,相同;再看形参列表是否相同,不相同(形参 个数不同),构成重载。


✏️ 今日随记

学习 Java 的 第 16 天。⏰

今天主要整理了Java 面向对象中的「方法重载」的相关内容,难度并不是很大。

今天也是第 4 个「5 + 1 +1」的学习周期的第 1 天,接下来继续加油✊

今日摘录:

I could either watch it happen or be part of it 」— Elon Musk


相关博客

【Java】学习日记 Day15

【Java】学习日记 Day14

【Java】学习日记 Day13

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java】学习日记 Day16 的相关文章

  • 6.RTT-UART-串口接收不定长数据

    本期来分析一下串口接受不定长度数据的源码 xff0c 这个demo也在手册里面 xff0c 可以去手册上结合着API说明观看 先把代码粘出来 xff0c 后面对重点代码进行分析 程序清单 xff1a 这是一个串口设备接收不定长数据的示例代码
  • learn-AJAX(第一天)

    AJAX的简介 一 简介及其简单使用 1 概述 web程序最初的目的就是将信息放到公共的服务器上 xff0c 让所有的网络用户都可以通过浏览器进行访问 在此之前 xff0c 通过以下的方式可以使浏览器对服务器发送请求 xff08 无法通过编
  • 纯C++实现的HTTP请求(POST/GET)

    原文地址 xff1a http www cnblogs com lidabo p 6404533 html 纯C 43 43 实现的HTTP请求 xff08 POST GET xff09 xff0c 支持windows和linux xff0
  • 3--STM32多功能小车(6)--硬件电路连接

    1 电源及接线 xff1b 对于stm32和所用到的外设来说 xff0c 基本都要用5V作为输入电压 xff0c 但是市面上的电池基本没有是5V输出的 xff0c 但是却有12V的 xff0c 因此我们就需要采用12V转5V xff08 一
  • Unable to fit model using “lrm.fit”R语言使用logistic回归时

    当初笔者遇到这个错误时上网搜了常见办法 就是在lrm后面加参数 tol span class token operator 61 span span class token number 1e 9 span 或者加 maxit span c
  • 激光雷达RPLIDAR A1使用教程

    激光雷达RPLIDAR A1使用教程 一 雷达硬件连接 1 A1雷达包含组件 RPLIDAR A1开发套装包含了如下组件 xff1a o RPLIDAR A1模组 xff08 内置 PWM电机驱动器 xff09 o USB适配器 o RPL
  • 4G远程小车1-树莓派读取WTGPS+BD模块

    树莓派python读取WTGPS 43 BD模块 WTGPS 43 BD模块 模块可以通过type C线连接 xff08 自带ch430芯片 xff09 USB口 xff1b 也可以通过串口与硬件串口号相连接 IPX天线接头为IPX1代 连
  • 3.ROS&PX4--PX4环境部署

    部署PX4 amp ROS开发环境 1 安装mavros Noetic版本 span class token function sudo span span class token function apt get span span cl
  • 4.ROS&PX4--运行官方offboard起飞程序

    1 创建空间 span class token function mkdir span catkin ws span class token builtin class name cd span catkin ws span class t
  • 5.ROS&PX4--offboard模式多航点代码编写

    4 ROS amp PX4 offboard模式多航点代码编写 offboard模式多航点代码编写等待更新 offboard模式多航点代码编写 等待更新 span class token comment 64 file offb node
  • Canal安装和配置,实现监听binlog日志

    1 下载canal Release v1 1 5 alibaba canal GitHub 2 直接解压 windows和linux下都是一样 3 conf example目录下 xff0c 编辑instance propertities
  • 看论文需要用到的一些专业词汇【SOTA,Benchmark,Baseline】

    看论文需要用到的一些专业词汇 SOTA Benchmark Baseline 1 SOTA2 Benchmark xff08 基准 xff09 Baseline 基线 1 SOTA SOTA实际上就是State of the arts 的缩
  • STM32中断-外部中断

    STM32中断 外部中断配置 外部中断配置 1 配置向量中断控制器NVIC xff0c 设置中断优先级 a 配置优先级组别 b 配置相关结构体参数 中断源 抢占优先级 子优先级 c 使用函数写入参数 代码参考如下 span class to
  • Ubuntu20 网络助手无法运行

    最近开始正式啃python高级教程 xff0c 遇到第一个问题 xff0c Ubuntu20版本下 xff0c 网络助手安装后 xff0c 点击开启无反应 经过好几天晚上的折腾 xff0c 终于搞定 xff0c 贴下解决过程 Step1 终
  • 通过服务器搭建一个短视频系统(含推荐算法)

    一 前端开发 前端使用的是uni app框架 xff0c 用到的开发软件是HBuiderx xff0c 前端界面如下所示 xff1a 主要包括五大功能 xff0c 一是热门视频展示 xff08 用到了热门视频推荐算法 xff09 个人推荐视
  • 【已解决】error: ‘CV_GRAY2BGR’ was not declared in this scope

    这是运行高翔 slambook2 代码出现的问题 xff0c 有两种方法解决 error CV GRAY2BGR was not declared in this scope home diyu slambook2 ch8 optical
  • 镜像备份工具rsync

    文章目录 1 概述2 rsync的认证协议3 rsync命令详解4 rsync 43 inotify 1 概述 什么是rsync xff1f rsync 即 Remote Sync 是linux系统下的数据镜像备份工具 使用rsync可以远
  • 系统调用的理解

    文章目录 系统调用什么是系统调用系统调用的分类系统调用与库函数的区别 系统调用 什么是系统调用 什么是系统调用 xff1f 答 操作系统的接口函数是连接应用软件与操作系统的中间桥梁 xff0c 系统调用其实就是操作系统提供给应用程序的接口函
  • ROS与C++入门教程(记录步骤)(一)

    ROS与C 43 43 入门教程 xff08 记录步骤 xff09 0 记录学习生活1 构建工作空间1 1 建立工作空间1 2 设置成自动加载环境 2 构建Catkin包2 1 构建2 2 查看程序包依赖关系2 3 解读package xm
  • C语言:全局变量在多个c文件中公用的方法

    用C语言编写程序的时候 xff0c 我们经常会遇到这样一种情况 xff1a 希望在头文件中定义一个全局变量 xff0c 然后包含到两个不同的c文件中 xff0c 希望这个全局变量能在两个文件中共用 举例说明 xff1a 项目文件夹proje

随机推荐

  • 迭代器(iterator)看这篇就够了

    文章目录 前言一 迭代器是什么二 迭代器如何使用2 1 迭代器正常遍历集合2 2 完全版迭代器可以一边遍历一边删除元素2 3 简易版迭代器 总结 前言 迭代器很重要 xff0c 是遍历线性数据结构 xff08 链表 xff09 的重要方法之
  • Jquery 获取元素属性值

    获取属性 获取内置属性获取自定义属性prop value name value attr value name value jquery中内置属性只能用来获取内置 自定义只能用来获取内置 内置属性 span class token func
  • 使用evo测评工具测评性能

    防止健忘 参考EVO工具github链接 xff1a link1 开源室内激光场景数据 xff1a link2 总体来说 xff0c evo是用于处理 评估和比较里程计和SLAM算法的轨迹输出 支持的轨迹文件格式 xff1a Tum文件Ki
  • DNS内网欺骗(仅供参考)

    DNS内网欺骗 仅供参考 下面展示一些 内联代码片 span class token comment 启动apche2 span systemctl start apache2 在 span class token operator spa
  • linux下安装nodejs(附带安装npm)

    一 下载nodejs的二进制文件 附官网链接 xff1a 下载 Node js 右键 xff0c 复制下载链接地址 二 安装解压 mkdir boke cd boke wget https nodejs org dist v16 13 2
  • stm32F103C8T6核心板 使用ST-Link无法烧写程序的解决方案

    stm32F103C8T6核心板 使用ST Link无法烧写程序的解决方案 本人也是小白一名 希望我的回答能对你有所帮助 以下是我遇到的问题 1 首先是插入连接线 电脑显示如图 网上找了很久还没有找到解决方案 不过不影响烧写 其次是FlyM
  • 【无标题】

    stm32最小核心板串口通讯连接方式 首先需要一个含有CH430的usb转ttl模块 3 3v接板子上的3 3v GND接板子上的GND 注意 不要接反了 接反的话usb转ttl模块不会亮 如果接反了并且usb转ttl模块插到电脑上 板子会
  • selenium 滑块问题解决

    滑块问题解决 问题解决分为两步 图片处理 滑块移动处理 图片处理 1 图片获取 这里获取的是背景以及滑块图片 获取图片 通过requests get 将图片下载到本地 with open 39 yuan image html 39 39 r
  • VisionPro 9.0 安装完,没有在Visual Studio 2019工具箱中上显示控件

    VisionPro 9 0 安装完 没有在Visual Studio 2019工具箱中上显示控件 步骤 右键工具箱 然后点击 选择项 然后点击浏览选项 3 目录位置 C Program Files x86 Cognex VisionPro
  • visionPro通过网线连接海康相机踩过的坑

    visionPro通过网线连接海康相机踩过的坑 1 搞了两三天 xff0c 笔者用的是笔记本是小新 xff0c 没有网口 xff0c 通过USB转网口连接摄像头 xff0c 明确的告诉你不行 xff0c USB即使达到所谓的千兆 xff0c
  • 完成select的TCP客户端

    include lt stdio h gt include lt sys types h gt include lt sys socket h gt include lt arpa inet h gt include lt netinet
  • vins概述

    基本框架如上 xff0c VINS的功能模块可包括五个部分 xff1a 数据预处理 初始化 后端非线性优化 闭环检测及闭环优化 代码中主要开启了四个线程 xff0c 分别是 xff1a 前端图像跟踪 后端非线性优化 xff08 其中初始化和
  • 软件项目管理总结(全)

    软件项目管理知识综述 第一章知识总结 软件项目管理的作用和重要性 项目管理就是将知识 技能 工具与技术应用于项目活动 xff0c 以满足项目的要求 项目管理通过合理 运用与整合特定项目所需的项目管理过程得以实现 项目管理使组织能够有效且高效
  • FreeRTOS 的任务调度方式和具体任务是怎么切换的

    FreeRTOS操作系统主要是两种任务调度方式 xff1a 抢占式调度 每个任务都有不同的优先级 xff0c 任务会一直运行直到被高优先级任务抢占或者遇到阻塞式的 API 函数 xff0c 比如 vTaskDelay 时间片调度 每个任务都
  • linux/UNIX中如何使用fork函数调用exec函数族,实现子进程做特定操作

    前言 在 Unix Linux 操作系统中 xff0c 进程是一种非常重要的概念 进程是程序执行的实例 xff0c 操作系统会为每个进程分配资源 xff0c 进程之间相互独立 xff0c 可以进行通信 在 Unix Linux 中 xff0
  • Opencv学习----矩阵操作-基本操作

    5 1 基本操作 cv absdiff InputArray src1 InputArray src2 OutputArray dst 计算两个数组之间或数组与标量之间的每元素绝对差值 注意 当阵列具有深度CV 32S时 xff0c 不应用
  • 【Linux】实验报告2 Linux基础命令

    作者 xff5c Ricky 水果摊 时间 xff5c 2022年6月27日 文章目录 实验目的实验原理1 Linux文件系统2 Linux存储位置常用命令存放位置头文件存放位置 3 Linux常用命令路径目录文件 实验内容1 Linux常
  • 【Linux】实验报告3 vi、gcc 和 gdb 的使用

    实验三 编辑器 vi 编译器 gcc 和调试器 gdb 的使用 文章目录 实验三 编辑器 vi 编译器 gcc 和调试器 gdb 的使用实验目的实验原理1 vi和vim简介1 1 vi1 2 vim 2 vi的三种工作模式2 1 命令模式
  • 【Linux】实验报告8 Linux文件系统

    作者 xff5c Ricky的水果摊 时间 xff5c 2022年7月6日 文章目录 实验目的实验内容1 文件信息命令2 基本的命令行文件管理3 文件系统权限操作 实验目的 使用 控制字符 执行特殊功能 xff1b 使用 file 和 st
  • 【Java】学习日记 Day16

    作者 xff5c Ricky 水果摊 时间 xff5c 2022年7月21日 x1f308 今日知识点总结 方法重载 xff08 Overload xff09 1 方法重载的定义 方法重载 是指 Java 允许在同一个类中 xff0c 定义