:Java中的方法和方法重载
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:Java中的方法和方法重载相关的知识,希望对你有一定的参考价值。
文章目录
一:Java中的方法
(1)什么是方法
方法:Java中方法就是一个代码片段,它类似于 C 语言中的 “函数”。作用有:
- 能够模块化的组织代码
- 做到代码被重复使用 ,一份代码可以在多个位置使用
- 让代码更好理解更简单
- 直接调用现有方法开发,不必重复造轮子
(2)方法定义
在Java中,定义一个方法的基本格式如下,注意
- 修饰符:现阶段直接使用
public static
固定搭配即可 - 返回值类型:如果方法有返回值,则返回值类型必须要与返回的实体的类型一致;如果没有返回值,必须写成
void
- 方法名字:采用“小驼峰”方式命名
- 参数列表:如果方法没有参数则什么都不写;如果有参数,则需要指明参数类型,多个参数之间使用逗号隔开
- 方法体:就是方法内部需要执行的语句,实现方法功能
- 在Java中:方法必须写在类中、方法不能嵌套定义、没有所谓的“声明方法”
修饰符 返回值类型 方法名称([参数类型 形参1,参数类型 形参2...])
方法体代码;
[return 返回值];
//例子:两个整数相加
public static int add(int x, int y)
int ret = x + y;
return ret;
(3)方法调用
使用方法时称之为方法调用。例如下面的例子:计算1!+2!+3!+4!+5!
public class TestDemo
public static void main(String[] args)
int sum = 0;
for(int i = 1; i <= 5; i++)
sum += fac(i);
System.out.println("1!+2!+3!+4!+5!=" + sum);
//计算的n!
public static int fac(int n)
System.out.print("计算" + n + "!=:");
int ret = 1;
for(int i = 1; i <= n ; i++)
ret*=i;
System.out.println(ret);
return ret;
(4)实参和形参的关系
A:实参和形参是什么
- 实际参数(实参):调用方法时传入的参数
- 形式参数(形参):定义方法时的参数,形参名任意
B:传值和传引用
在Java中,实参和形参分别占据不同的内存空间,方法被调用后会自动为形参开辟空间,两片空间没有任何关系,方法调用完毕形参所在空间就会被销毁。在上面的例子,实参只是把形参的值复制了一份给了形参,形参不会影响到实参
例如下面的例子中,swap
方法无法实现变量交换,它仅仅交换的是形参
public class TestDemo
public static void main(String[] args)
int a = 10;
int b = 20;
swap(a, b);
System.out.println("a="+a+" b="+b);
public static void swap(int x, int y)
int temp = x;
x = y;
y = temp;
对于上面的基本类型,形参是实参的拷贝,所以传参时属于 传值调用;而对于引用类型,形参从某种方面来讲就是实参,所以传参时属于 传引用调用,此时对形参的修改则会直接反馈在实参上(后面再讲)
二:方法重载
(1)概念
- 可对照C++中的函数重载学习:C++快速入门之函数重载
方法重载:Java中允许多个同名方法同时存在。满足以下要求时构成方法重载
- 方法名称相同
- 形参列表不同(类型、个数、顺序满足其一即可)
- 返回值不做要求(但两个或多个方法仅仅因为返回值类型不同是不能构成重载的)
如下有三个同名方法add()
构成重载,编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
public class TestDemo
public static void main(String[] args)
int a = add(1, 2);
double b = add(3.14, 5.27);
double c = add(1, 1.98, 2);
System.out.println(a);
System.out.println(b);
System.out.println(c);
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(int x, double y, int z)
return x + y;
(2)实现原理
- 可对照C++中的函数重载学习:C++快速入门之函数重载
之所以可以实现这样的功能,是因为编译器在编译时会对原有方法名进行修饰,修饰规则为:方法全路径名+参数列表+返回值类型,以此构成方法完整的名字
这里,对上述字节码文件执行反汇编:javap -v TestDemo.class
后可查看到如下信息
三:递归
以上是关于:Java中的方法和方法重载的主要内容,如果未能解决你的问题,请参考以下文章