Java方法
Java方法
设计方法的原则:一个方法只完成一个功能,这样有利于后期的扩展
方法定义
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
-
修饰符
-
返回值类型
-
方法名
-
参数类型
- 形参
- 实参
注:Java中实参到形参的传递都是“值传递”,基本数据类型的实参将其具体的值复制一份给形参,而引用类型的实参将其地址复制给形参
- 值传递:会创建副本,方法无法改变原始对象
- 引用传递:不创建副本,方法可以改变原始对象
-
方法体
方法重载
重载就是在一个类中,有相同名称,但形参不同的函数
方法名称相同时,编译器根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败则报错。
重载的规则
- 方法名必须相同
- 参数列表不同(个数不同、或类型不同、参数排列顺序不同等)
- 方法的返回类型可以相同也可以不同
命令行传参
在cmd中,以如下形式可以给main函数的args数组传参
java xxx 参数
可变参数
- JDK 1.5开始,Java支持传递同类型的可变参数给一个方法
- 在方法声明中,在指定参数类型后加一个省略号(...)
- 一个方法中只能指定一个可变参数,必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
Demo2 demo2 = new Demo2();
demo2.test(1,2,3,4,5,6,34,234);
}
public void test(int x,int ... i){ //可变参数必须放在最后
for (int j : i) {
System.out.println(j); //输出2,3,4,5,6,34,234
}
递归
递归就是自己调用自己
利用递归来解决一些复杂问题,在大的问题层层转化为与原问题相似的小问题来求解。使用递归只需要少量的程序就可以描述出解题过程所需要的多次重复计算。
递归结构包含两个部分:
- 递归头:什么时候不调用自身方法。没有递归头就会死循环
- 递归体:什么时候需要调用自身方法
比如写一个阶乘函数f(n),n==0则return 1 否则 return n*f(n-1)
注
Java使用栈机制,所以对一些需要多次递归的问题,太占内存。比如之前阶乘的例子,如果要让程序算200的阶乘,直接输出0了,内存崩溃
能不用递归就不用递归了,除非问题递归次数少
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异