Java方法
2021/9/11 17:05:02
本文主要是介绍Java方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
方法
语句的集合,它们在一起执行一个功能
- 方法是解决一类问题的步骤的有序组合
- 方法包含在类或对象中
- 方法在程序中被创建,在其他地方被引用
设计原则
- 方法本意是功能块,实现某个功能的语句块的集合
- 保持方法的原子性,一个方法只完成一个功能,利于后期维护与扩展
方法定义
方法包含一个方法头和一个方法体
- 修饰符:修饰符,可选,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型:方法可能有返回值。returnValueType是方法返回值的数据类型。
- 方法名:方法实际名称。方法名和参数表共同构成方法签名。
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参/变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以没有参数。
- 形式参数:在方法被调用时,用于接收外界输入的数据。
- 实际参数:调用方法时实际传给方法的数据。
- 方法体:方法体包含具体的语句,定义该方法的功能。
方法的重载
重载是在一个类中,有相同的方法名,不同的形参
重载规则
- 方法名称必须相同
- 参数列表必须不同(个数、类型、参数排列顺序等)
- 方法的返回类可以相同也可以不同
- 仅仅返回类型不同不足以成为方法的重载
Main方法传参
package method; public class MainMethod { public static void main(String[] args) { for (String arg : args) { System.out.println(arg); } } }
# 编译 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>javac MainMethod.java # 运行 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>java MainMethod 错误: 找不到或无法加载主类 MainMethod # 无法直接运行,需要到src目录下 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src\method>cd .. # 包名.类名,运行成功,但无输出,因没有传递参数 D:\KuangStudy\CODE\JavaSE\BaseGrammar\src>java method.MainMethod # 运行,传递'this is main method' D:\KuangStudy\CODE\JavaSE\BaseGrammar\src>java method.MainMethod this is main method this is main method
方法的可变参数
- JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法
- 在方法声明中,在指定参数类型后加一个省略号(
...
) - 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
public static void main(String[] args) { double sum = 0; sum = add(sum, 1, 2, 3, 4, 5); System.out.println(sum); } public static double add(double sum, int... arg) { for (int i : arg) { sum += i; } return sum; }
递归
Java栈是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。
递归会多次调用方法,易导致栈溢出。
递归结构
- 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
- 递归体:什么时候需要调用自身方法。
// 计算n! public int calc(int n) { if (n == 1) { return n; } else { return n * calc(n - 1); } }
这篇关于Java方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11有哪些好用的家政团队管理工具?
- 2025-01-11营销人必看的GTM五个指标
- 2025-01-11办公软件在直播电商前期筹划中的应用与推荐
- 2025-01-11提升组织效率:上级管理者如何优化跨部门任务分配
- 2025-01-11酒店精细化运营背后的协同工具支持
- 2025-01-11跨境电商选品全攻略:工具使用、市场数据与选品策略
- 2025-01-11数据驱动酒店管理:在线工具的核心价值解析
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API