方法
1.1什么是方法?
--封装在一起来执行操作语句的集合,用来完成某个功能操作;
--在某些语言中称为函数或过程;
--特殊的方法main,程序执行的入口
![]() |
--完成某些功能需要调用其他方法
定义方法:
[修饰符] 方法返回值类型 方法名(形参列表){ 方法体 } |
public static int add(int a,int b,int c){ int k = a+b+c; return k; } |
--修饰符:决定了方法的工作范围;
--返回值类型:必选,如果没有返回值,须写void,方法只能返回一个值;
--方法名:首字母小写,后面每个单词的首字母都大写;
--参数列表:可以0个、1个、多个,需要同时说明类型,称为形式参数;
--方法体:完成具体功能。如果有返回值,必须有return语句;如果没有返回值,默认最后一条语句是return,可以省略。
练习:
猜数游戏,编写一个功能,完成猜数游戏,产生一个1~10之间的随机数,与输入的数对对比,返回结果 猜中和没猜中
import java.util.Scanner;
public class Test08{ public static void main(String[] args){ Scanner input = new Scanner(System.in); int a = (int)(Math.random()*10)+1; System.out.println("欢迎来到猜数游戏,请猜数:"); int b = input.nextInt(); System.out.println("随机数是"+a); if (b == a){ System.out.println("恭喜你,猜中了!"); }else{ System.out.println("很遗憾,没猜中!"); } } } |
测试结果:
![]() |
1.2方法调用
![]() |
例如
静态方法的调用:
public class Test08{ public static void arr(){ System.out.println("美好的夜晚"); } public static void main(String[] args){ Test08 ts = new Test08(); ts.arr(); } }
|
返回结果为:
![]() |
1.3方法重载
定义:在一个类中可以有多个方法名相同,但参数列表不同的方法。
在调用时,会根据不同的参数列表选择对应的方法,省略了手动筛选方法的过程。
参数列表不同分为3中情况:
--参数类型不同;
--参数个数不同;
--不同类型的参数顺序不同。
举例:
未使用方法重载前的写法:
public class Test09{ public static void main(String[] args){ addInt(1,2); addFloat(3.1f,4.2f); addDouble(5.34,6.56); } public static int addInt(int a,int b){ int sum = a+b; return sum; } public static float addFloat(float a,float b){ float sum = a+b; return sum; } public static double addDouble(double a,double b){ double sum = a+b; return sum; } } |
使用方法重载后:
public class Test09{ public static void main(String[] args){ add(1,2); add(3.1f,4.2f); add(5.34,6.56); } public static int add(int a,int b){ int sum = a+b; return sum;
} public static float add(float a,float b){ float sum = a+b; return sum; } public static double add(double a,double b){ double sum = a+b; return sum; } } |
1.1.4方法的总结:
【1】定义方法可以将功能代码进行封装;
【2】方法只有被调用才会被执行;
【3】方法的出现提高了代码的复用性;
【4】方法中只能调用方法,不可以在方法内部定义方法;
【5】定义方法时,方法的结果应该返回给调用者去处理。
1.15递归算法
什么是递归(recursion)
--程序调用自身的编程技巧称为递归。
--一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法
递归问题的特点:
--一个问题可被分解为若干层简单的子问题;
--子问题和其上层问题的解决方案一致;
--外层问题的解决依赖于子问题的解决。
递归算法总结:
![]()
|