新闻详情

新闻详情

首页 / 资讯中心 / 详情

第五集,方法的使用

发布时间:2026/9/6 2:22:35来源:尧图网络
第五集,方法的使用
方法是用来完成某个任务的在 C 语言里我们通常叫做函数单独写出函数是为了更加方便也为了更清晰地看到代码的作用。一、Java 里的方法1.方法的格式示例修饰符 返回值类型 方法名(参数类型 参数名, ...) { 方法体; return 返回值; }这段内容其实并不复杂只要记住格式即可。需要特别注意的是返回值的类型不能写错。通常在 main 方法中调用某个方法时要留意该方法的返回值类型如果没有返回值则使用 void。最后在调用方法时还要判断是否需要接收其返回值。2.方法里的实参和形参简单来说实参是指在调用方法时实际传入的参数而形参是方法定义时用来接收这些参数的变量。需要注意的是实参和形参分别存储在不同的栈帧中调用方法时会为形参分配新的内存空间所以方法里修改形参并不会影响实参。下面通过一个示例来理解实参和形参的区别public class ParamDemo { // 形参方法定义时用来接收参数的变量 public static void change(int num) { num 100; // 修改形参的值 System.out.println(方法内修改后的 num num); } public static void main(String[] args) { int num 10; // 实参调用方法时实际传入的参数 System.out.println(调用前 num num); change(num); // 把实参 num 的值传给形参 System.out.println(调用后 num num); // 实参不受影响仍为 10 } }运行结果调用前 num 10 方法内修改后的 num 100 调用后 num 10从结果可以看出方法内修改形参 num 并不会影响 main 方法中的实参 num因为两者存储在不同的栈帧中形参只是实参值的一份拷贝。二、重载重载简单来说就是允许同一个方法名被重复使用但为了区分不同的功能方法所接收的形参在个数、顺序或类型上必须有所不同。下面通过一个示例来理解重载public class OverloadDemo { // 两个整数相加 public static int add(int a, int b) { return a b; } // 三个整数相加参数个数不同 public static int add(int a, int b, int c) { return a b c; } // 两个小数相加参数类型不同 public static double add(double a, double b) { return a b; } public static void main(String[] args) { System.out.println(add(1, 2)); // 调用 int add(int, int) System.out.println(add(1, 2, 3)); // 调用 int add(int, int, int) System.out.println(add(1.5, 2.5)); // 调用 double add(double, double) } }所以重载解决了重复定义方法名的问题让同一个方法名可以处理不同类型或数量的参数提高了代码的复用性和可读性。上面的三个 add 方法名称相同但参数个数或类型不同这就是重载。调用时Java 会根据传入实参的个数和类型自动匹配对应的方法。三、递归递归需要一定的数学基础来理解。递归包含两个动作一个是「递」即不断向更小的问题推进一个是「归」即逐层返回结果。理解递归时可以抓住两个关键点第一找到递归的结束条件递的终点第二找到递归的推导公式递推关系。思考时要纵向展开先想清楚整体逻辑不要一开始就陷入代码细节。下面通过一个计算阶乘的示例来理解递归public class FactorialDemo { // 递归方法计算 n 的阶乘 public static int factorial(int n) { // 递归结束条件n 为 0 或 1 时直接返回 1 if (n 0 || n 1) { return 1; } // 递推公式n! n * (n-1)! return n * factorial(n - 1); } public static void main(String[] args) { System.out.println(5! factorial(5)); System.out.println(6! factorial(6)); } }运行结果5! 120 6! 720以 factorial(5) 为例递归的执行过程如下factorial(5) 5 * factorial(4) 5 * 4 * factorial(3) 5 * 4 * 3 * factorial(2) 5 * 4 * 3 * 2 * factorial(1) 5 * 4 * 3 * 2 * 1 120可以看到递归先不断「递」到结束条件 factorial(1)再逐层「归」回并计算结果。只要找到结束条件和递推公式递归的代码往往非常简洁。下面出两道递归练习题先自己动手写一写再对照思路检查练习一斐波那契数列斐波那契数列的定义是第 1 项和第 2 项都是 1从第 3 项开始每一项都等于前两项之和即 1、1、2、3、5、8、13……请用递归方法实现一个函数输入一个正整数 n返回第 n 项的值。提示先想清楚递归的结束条件是什么再写出递推公式。练习二数字各位之和给定一个非负整数请用递归方法计算它各位数字之和。例如输入 1234应返回 1 2 3 4 10输入 7应返回 7。提示想一想如何通过取余和整除把一个大问题逐步拆成更小的问题。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

瑞德克斯平台:平台功能布局思路为什么容易留下印象 2026/9/6 3:10:45

瑞德克斯平台:平台功能布局思路为什么容易留下印象

从公开信息与服务细节来看,瑞德克斯平台在外汇相关服务环境中的辨识度,更多来自长期稳定的品牌节奏。把公开信息、服务感受和页面印象放在一起看,更便于理解平台的整体气质。同样的话,用更稳的语气表达,用户更便于接受…

阅读更多 →
2026成都寰际职业赛传统健美212决赛复盘:备赛与评判全解析 2026/9/6 3:10:45

2026成都寰际职业赛传统健美212决赛复盘:备赛与评判全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
量化训练翻车:模型压缩 loss 曲线抖了 3000 步,只改 warmup 就稳了 2026/9/6 3:10:45

量化训练翻车:模型压缩 loss 曲线抖了 3000 步,只改 warmup 就稳了

量化训练翻车:模型压缩 loss 曲线抖了 3000 步,只改 warmup 就稳了 发版前一天,我准备把客服对话模型的推理时延砍到 40ms 以内,于是决定对模型压进行 INT8 量化压缩。结果第一次量化训练还没跑完 3000 步,loss 曲线就像心电图一样狂抖,最后直接爆出 NaN。我紧急把权重回滚到全…

阅读更多 →
01 · 调研与规划:翻译范围与 P0→P4 方案 2026/9/6 3:10:45

01 · 调研与规划:翻译范围与 P0→P4 方案

01 调研与规划:翻译范围与 P0→P4 方案 系列导航:本系列记录 gdev-master 从 C/C 到 Rust 的移植工程。 01 调研与规划 02 工程化工作流 03 实施进度与踩坑 移植一个 79k 行的 C/C 项目,第一步不是写代码,而是搞清楚「要移什么…

阅读更多 →
ZFX山海证券外汇:把风险提示表达讲清楚的几个重点 2026/9/6 3:10:45

ZFX山海证券外汇:把风险提示表达讲清楚的几个重点

该平台作为外汇相关服务平台给人的第一印象,往往不只是某一个功能点,而是品牌形象、信息说明和使用体验是否保持一致。节奏稳、表达清楚的平台,便于留下持续而清晰的印象。从信息组织方式来看,该平台呈现出的层次感比较重要。把基…

阅读更多 →
Claude Fable 5.1 preserved thinking 拆解:Agent harness 为什么必须从可重写历史迁移到追加式会话 2026/9/6 3:07:45

Claude Fable 5.1 preserved thinking 拆解:Agent harness 为什么必须从可重写历史迁移到追加式会话

从会话粘性到无状态核心:LangChain 新版 MCP 的生产迁移实践LangChain 官方文章发布于二零二六年九月三日,并把新版能力定位为生产迁移的重要基础。MCP 支持被移入 langchain.mcp,调用边界因此更加清晰。安装入口统一为 langchain[mcp]&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞