【java基础】 方法,实参和形参,方法的重载,签名,递归

2023-11-19

目录

方法概念及使用

实参和形参的关系(重要)

方法的重载

 方法签名(简单了解)

递归(简单介绍)


方法概念及使用

方法就是一个代码片段. 类似于 C 语言中的 "函数"。

作用:

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
  2. 做到代码被重复使用, 一份代码可以在多个位置使用.
  3.  让代码更好理解更简单.
  4.  直接调用现有方法开发, 不必重复造轮子

方法定义

// 方法定义
修饰符 返回值类型 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}

public class Method{
// 方法的定义
public static int add(int x, int y) {
return x + y;
}
}

【注意事项】

  1.  修饰符:现阶段直接使用public static 固定搭配
  2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
  3.  方法名字:采用小驼峰命名
  4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
  5. 方法体:方法内部要执行的语句
  6.  在java当中,方法必须写在类当中
  7. 在java当中,方法不能嵌套定义
  8.  在java当中,没有方法声明一说

【方法调用过程】

调用方法--->传递参数--->找到方法地址--->执行被调方法的方法体--->被调方法结束返回--->回到主调方法继续往下执行

【注意事项】 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.

一个方法可以被多次调用.

举个栗子:

代码示例: 计算 1! + 2! + 3! + 4! + 5!


public class TestMethod {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += fac(i);
}
System.out.println("sum = " + sum);
}
public static int fac(int n) {
System.out.println("计算 n 的阶乘中n! = " + n);
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
}
// 执行结果
计算 n 的阶乘中 n! = 1
计算 n 的阶乘中 n! = 2
计算 n 的阶乘中 n! = 3
计算 n 的阶乘中 n! = 4
计算 n 的阶乘中 n! = 5
sum = 153

//使用方法, 避免使用二重循环, 让代码更简单清晰.

实参和形参的关系(重要)

方法的形参相当于数学函数中的自变量,比如:1 + 2 + 3 + … + n的公式为sum(n) =(1+n)*n/2

Java中方法的形参就相当于sum函数中的自变量n,用来接收sum函数在调用时传递的值的。

形参的名字可以随意取,对方法都没有任何影响,形参只是方法在定义时需要借助的一个变量,用来保存方法在调用时传递过来的值。

举个栗子:

 注意:对于基础类型的数据来说,实参和形参的传递是单向值传递,要传地址需要传引用类型参数(比如数组)

方法的重载

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。

(类似于C语言中的结构体)

举个栗子:

public class TestMethod {
public static void main(String[] args) {
add(1, 2); // 调用add(int, int)

add(1.5, 2.5); // 调用add(double, double)

add(1.5, 2.5, 3.5); // 调用add(double, double, double)
}
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(double x, double y, double z) {
return x + y + z;
}
}

注意:

  1. 方法名必须相同
  2.  参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
  3. 返回值没有要求

 方法签名(简单了解)

方法签名即:经过编译器编译修改过之后方法最终的名字。

具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

递归(简单介绍)

一个方法在执行过程中调用自身, 就称为 "递归

递归相当于数学上的 "数学归纳法", 有一个起始条件, 然后有一个递推公式

举个栗子: 

递归过程推演

 补充:

使用递归的优点:代码少,缺点:不好书写(尤其是递推公式的确定),浪费的空间比较多。

使用循环的好处是容易理解。

递归详细使用后面单独介绍

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

【java基础】 方法,实参和形参,方法的重载,签名,递归 的相关文章

随机推荐

  • nodejs学习-----封装异步API,学习回调函数

    1 回调函数学习 回调函数定义 使用者自己定义一个函数 实现这个函数的程序内容 然后把这个函数 入口地址 作为参数传入别人 或系统 的函数中 由别人 或系统 的函数在运行时来调用的函数 函数是你实现的 但由别人 或系统 的函数在运行时通过参
  • left join on多表关联_2周零基础搞定SQL——多表查询

    在上一篇文章里 我们学习了SQL的复杂查询 但是依然只是针对一个表的 但在实际工作中 我们需要的数据 往往分布在多个表中 所以为了更好的解决工作中的实际问题 今天我们一起来学习如何用SQL进行多表查询吧 1 表的加法 在之前的学习中 我们建
  • 4-2 过滤器法

    4 2 过滤器法 请参考 数据准备和特征工程 中的相关章节 调试如下代码 注意 本节内容因为要耗费比较大的内存 在线平台有可能无法支持 可以下载到本地执行 基础知识 from sklearn datasets import load iri
  • 运行ntpdate报错:Temporary failure in name resolution

    一 问题报错 忽然发现某台机器时间慢了些几分钟 之前没有搭建ntpd服务 目前都是使用的ntpdate加定时任务进行时间同步 直接执行ntpdate报错如下 ntpdate cn pool ntp org Exiting name serv
  • 大学四年,因为这8个网站,我成为同学眼中的学霸

    作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 推荐专栏 对网络安全感兴趣的小伙伴可以关注专栏 网络安全入门到精通 大学期间 几乎每一个教过我的老师都反应 我的学习态度不好 我上课很少仔细听老师在讲什
  • DNF搭建服务器服务端搭建教程

    DNF搭建服务器服务端搭建教程 我是艾西 今天给大家分享下怎么样自己搭建一个DNF 前阵子体验了下其他GM搭建的服 那么对于自己搭建的好处在于出道即巅峰 想要什么武器就是一串代码命令的事情 下面我跟大家说一下需要准备那些东西 DNF服务端
  • java获取当前服务器系统默认得编码格式

    java文件中 可以通过下面方法获取执行这段代码的服务器系统的编码格式 System getProperty file encoding 输出的结果是String的字符串 例如 utf 8
  • Java之Spring

    目录 创建spring项目 存储bean对象到容器 spring 中 从spring中将bean取出 更简单的读取存储对象 存储bean对象 前置准备 添加注解存储 Bean 对象 获取bean对象 bean作用域和生命周期 定义 bean
  • QT信号和槽机制实现及源码阅读

    说明 QT的信号和槽采用观察者模式 Q OBJECT是提供信号和槽的基础 使用过connect第五个参数的可知 槽可以在信号发出的线程处理 也可以加入任务队列进行处理 但是在此只写了在触发线程处理的代码 如下是实现的类QT信号和槽 gt F
  • 终于有人把软件测试用例讲清楚了(一定要收藏)

    目录 1 公司流程 1 1 测试用例的4个特性 1 1 测试用例通常包括以下几个组成元素 1 编写测试用例的基本方法 1 1 1 概念 1 1 1 示例 1 1练习案例 1 1 边界值法 1 1 1 确定边界值的方法 1 1 因果图法 1
  • ubuntu 20.04装nvidia显卡驱动

    装这个显卡驱动遇到了很多问题 第一次装了两三天没有成功 休息了一个星期 又来试 终于成功了 显卡驱动安装 1 检查自己的显卡型号 lspci grep i vga 会出现一个16进制的数字 选有nvidia的那个就是独显 我的是TU104M
  • visual studio:解决方案资源管理器中限定为此范围的显示与取消

    参考 VS 解决方案资源管理器中限定为此范围的显示与取消
  • 利用python做一个超简单的抽签器

    抽签器 用python写一个超基础的简单版抽签器 我利用了list函数来存储待抽签的选项 先将候选人输入到列表中 再进行随机抽签 以下是代码 一个抽签器 能够从多人中随机抽取一人 import random def random draw
  • Seekbar细节

    Seekbar可以自定义thumb图标 但是有时候发现thumb没有展示完全 或者图标周围显示的是背景色 此时就需要设置一些属性 android background null android thumbOffset 0dp android
  • QT入门之QToolBar

    目录 一 QToolBar界面相关 1 布局介绍 2 界面基本属性 3 添加动作测试 4 代码添加动作 5 创建按钮 此文为作者原创 转载请标明出处 一 QToolBar界面相关 1 布局介绍 先看下界面中创建个toolBar 右键Main
  • 真题详解(传引用)-软件设计(七十五)

    真题详解 补码转换 软件设计 七十四 https blog csdn net ke1ying article details 130674214 分治算法技术设计 答案 1 问题划分 2 递归求解 3 合并解 虚拟存储体系 两级构成 解析
  • 3、RH850端口说明及及复用功能配置

    RH850端口有3种工作模式 通用IO口 普通数字口 PMC控制寄存器对应bit为0 软件配置复用模式 PMC控制寄存器对应bit为1 PIPC寄存器对应bit为0 硬件直接连接模式 PMC控制寄存器对应bit为1 PIPC寄存器对应bit
  • 冒号 定义成员函数_C++ 类成员 类成员的构造 冒号语法

    设有类CTime和CDate分别用于描述时间和日期 另外有CDateTime类描日期和时间 请为三个类给出具体的实现代码 并在main函数中测试 include includeusingnamespace 设有类CTime 和CDate分别
  • XMind 2020 for mac (XMind思维导图)

    xmind 2020中文版是一款十分实用的思维导图软件 相信很多用户都还不了解XMind XMind官方版优化了许多功能 性能上大大提高 使用XMind思维导图可以帮助用户完成逻辑图 树形图 组织结构图等 还可以导出ppt word 图片
  • 【java基础】 方法,实参和形参,方法的重载,签名,递归

    目录 方法概念及使用 实参和形参的关系 重要 方法的重载 方法签名 简单了解 递归 简单介绍 方法概念及使用 方法就是一个代码片段 类似于 C 语言中的 函数 作用 是能够模块化的组织代码 当代码规模比较复杂的时候 做到代码被重复使用 一份