系列文章目录
文章目录
前言
伴随Java基础课走到尾声,我们今天来了解一下Java中方法的定义与使用
一、方法(method)是什么?
1.方法是可以完成某个特定功能的并且可以重复被利用的代码片段,在C语言和c++中,方法被称为“函数”
2.方法是程序中最小的执行单元.
3.方法在程序中必须先定义后使用,但是也可以定义但不使用.
二、方法的类型
方法大致上有三种定义
1.为不需要参数不需要返回值的定义
2.为带参数的定义
3.为带返回值的定义
1.最简单的定义
public class fangfa {
public static void main(String[] args) {
play();
}
public static void play(){
System.out.println("helloworld");
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=57799:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day08 Test.fangfa
helloworld
2.带参数的方法定义
代码如下
public class fangfa1 {
public static void main(String[] args) {
add(5,6);
}
public static void add(int a,int b){
System.out.println(a+b);
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=58045:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day08 Test.fangfa1
11
3.带返回值的方法的定义
代码如下
public class fangfa1 {
public static void main(String[] args) {
int num2=add(5,6);
System.out.println(num2);
}
public static int add(int a,int b){
int num=a+b;
return num;
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=58105:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day08 Test.fangfa1
11
4.方法定义位置
public class fangfa1 {
public static void main(String[] args) {
int num2=add(6);
System.out.println(num2);
}
public static int add(int a,int b){
int num=a+b;
return num;
}
}
要在main()外,在class()里面
5.方法的重载
在Java语言中允许同种方法名的出现,当两个方法的作用能力相同时,就可以使用方法的重载,这样代码既美观,又便于后期的代码编写。
使用重载条件
1:在同一个类当中。
2:方法名相同。
3:参数列表不同。
参数的个数不同算不同;
参数的类型不同算不同;
参数的顺序不同算不同。
public class fangfa1 {
public static void main(String[] args) {
add(1,2);
add(1.0,2.0);
add(1,2,3);
}
public static void add(int x,int y){
System.out.println(x+y);
}
public static void add(double x,double y){
System.out.println(x+y);
}
public static void add(int x,int y,int z){
System.out.println(x+y+z);
}
}
运行结果如下
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60462:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day08 Test.fangfa1
3
3.0
6
6.方法的递归
方法的递归相当于无线套娃模式
public class fangfa2 {
public static void main(String[] args) {
int num=a(10);
System.out.println(num);
}
public static int a(int x){
if(x==1)
return 1;
else
return x*a(x-1);
}
}
运行结果
"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=60678:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day08 Test.fangfa2
3628800
1.方法的递归是一个调用方法本身的用法。
2.递归方法将重复调用它自身,因此我们需要一个使调用停止的条件。
3.使用递归方法解决问题与使用循环语句解决问题具有相同的工作原理。用循环语句解决的问题也可以用递归方法解决。
注意方法的调用会大量占领栈内存,甚至会导致栈溢出影响程序运行
三、3种类型方法的定义的注意事项
当使用带参数的方法时,他的本质就是实参和形参在栈空间里面传递数值,所以他的形参的实参的数值必须一一对应
如果这样的话
public class fangfa1 {
public static void main(String[] args) {
int num2=add(6);
System.out.println(num2);
}
public static int add(int a,int b){
int num=a+b;
return num;
}
}
我们运行一下试试
Error:(5, 18) java: 无法将类 Test.fangfa1中的方法 add应用到给定类型;
需要: int,int
找到: int
原因: 实际参数列表和形式参数列表长度不同
说明实参的形参必须一一对应
并且
break;用来终止switch和离它最近的循环。
return;用来终止离它最近的一个方法。
他们在方法中依旧适用
特别注意
当定义带返回值的方法时,要将void换成int要不然系统会报错
在定义的方法中,定义的变量只能在方法里面使用,在方法外面就需要重新定义
public class fangfa2 {
public static void main(String[] args) {
int x=a(10);
System.out.println(x);
}
public static int a(int x){
if(x==1)
return 1;
else
return x*a(x-1);
}
}
在这行代码中main()中和方法中的x都可以定义并且互不影响
总结
方法的对于我们以后程序的编写有重大作用,可以减少我们编程人员的工作
五一假日也接近尾声啦,祝大家玩的愉快哦