Java语言由8个模块构成,分别为:关键字、标识符(包名、类名、接口名、常量名、变量名等)、注释、常量和变量、运算符、语句、函数、数组。
本片主要介绍Java中的函数,函数是Java中最小的功能单元。
1.函数的定义
? ? 1)?定义:指在类中的具有特定功能的一段独立小程序,也称为方法。
? ? 2) 格式:
? ?修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2, ... )?
? ?{
? ? 执行语句;
? ? ? return 返回值;
? ?}
? ?返回值类型:函数运行后的结果的数据类型。
? ?参数类型:是形式参数的数据类型。
? ?实际参数:传递给形式参数的具体数值。
? ?return:用于结束函数。
? ?返回值:该值会返回给调用者。
? ? 3) 范例
? ? ? //计算任意整数*3+5的结果
? ? class FunctionDemo{
? ?public static void main(String[] args){
? ? ?int x=4;
? ? ?System.out.println(x*3+5);
? ? ?int y=6;
? ? ?System.out.println(y*3+5); ? ?
? ?}
? ? ? ? }
? ? ? 发现以上的运算,因为获取不同数据的运算结果,代码出现了重复。
? ? 为了提高代码的复用性,对代码进行抽取。
? ? 将这个部分定义成一个独立的功能,方便使用。
? ? Java中对功能的定义是通过函数的形式来体现的。
? ? 即需要定义一个功能:完成任意整数*3+5的值。
? ?public static int getResult(int num){
? ? return num*3+5;
? ?}
? ? ? 因此,上面的代码就可以简写为:
? public class FuntionDemo{
? ?public static void main(String[] args){
? ? int x=getResult(4);
? ? int y=getResult(6);
? ? System.out.println("x="+x+",y="+y);
? ? }
? ?}
? ?public static int getResult(int num){
? ? return num*3+5;
? ?}
? //该程序运行结果为:x=17,y=23
2.函数的特点
? ? 1) 定义函数可以将功能代码进行封装。
? ? 2) 便于对该功能进行复用。
? ? 3) 函数只有被调用才会执行。
? 4) 函数的出现提高了代码的复用性。
? 5) 当函数没有具体返回值的情况,返回值类型用关键字void标识,即void代表的是函数没有具体返回值,那么该函数中的return语句如果在最后一行可以省略不写,该功能也不能在输出语句中输出,在功能中可以输出,函数直接调用。
? 6) 注意写法格式:
? ? ? ? ? 函数只能调用函数,不可以在函数内部定义函数(函数是平级的,谁也不包含谁)。
? ? ? ? ? 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
? 7) 例子说明:直接打印结果,不返回值(注意对应第五个特点)
? ?public class FuntionDemo{
? ? public static void main(String[] args){
? ? ?getResult(5);
? ?}
? ?public static void getResult(int num){
? ? System.out.println(num*3+5);
? ? return;? //return可以省略不写。
? ? }
? ?}
? //该程序运行结果为:20
3.函数的应用
? ? 1) 如何定义一个函数?
? *1* 既然函数是一个独立的功能,那么先明确该功能的运算结果是什么。
? *2* 再明确在定义该功能的过程中是否需要未知的内容参与运算。
? *3* 定义函数时只需完成相对应的功能,将结果返回给调用者,调用者怎么使用是调用者的事情。
? ? 2)实例说明
? 这里以简单的加法运算为例,主要介绍函数的应用,对于函数的特点体现不是特别明确。
? ? ? ? *1* 需求:定义一个功能,完成3+4的运算,并将结果返回给调用者。
? ? ? ? *2* 思路:1.明确该功能的运算结果:是一个整数的和,即明确函数的返回值类型。
? ? ? ? ? ? 2.再明确在定义该功能的过程中没有未知的内容参与运算,即明确函数的参数列表(参数类型和参数个数)。
? *3* 程序实现:
? class FunctionDemo2{
? ?public static void main(String[] args){
? ?int? sum=getAdd();
? ?System.out.println("sum="+sum);
? ?}
? ?public static int getAdd(){
? ?return 3+4;
? ?}
? }
? *4* 结果分析:该程序运行结果为:sum=7
以上函数的功能,结果是固定的,无扩展性。
为方便用户需求,由用户来指定加数和被加数,这样功能才有意义。
? *1* 需求:定义一个功能,完成任意两个整数加法的运算,并将结果返回给调用者。
? ? ? ? *2* 思路:
? ? ? ? ? ? 功能的结果是一个整数,即返回值类型为int。
? ? ? ? ? ? 有两个未知内容参与运算,类型为int。
? *3* 程序实现:
? ?class FunctionDemo2{
? ? public static void main(String[] args){
? ? ?int? sum=getAdd(3,5);
? ? ?System.out.println("sum="+sum);
? ? ?int? sum=getAdd(6,6);
? ? ?System.out.println("sum="+sum);
? ? public static int getAdd(int a int? b){
? ? ?return a+b;
? ? ?}
? ? }
? *4* 结果分析:该程序运行结果为:sum=8
? ? ? ? ?sum=12
? ? 3)函数的具体应用实例(一)
? *1* 需求:判断两个数是否相等。
? ? ? ? *2* 思路:
? ? ? ? ? ? 功能的结果是一个boolean型变量,即返回值类型为boolean。
? ? ? ? ? ? 有两个未知内容参与运算,类型为int。
? *3* 程序实现:
? ?class FunctionDemo{
? ? public static void main(String[] args){
? ? ?compare(3,5);
? ? ?System.out.println(compare(3,5));
? ? ?}
? ? public static boolean compare(int a,int? b){
? ? ?return (a==b)?true:false;
? ? ?}
? ? }
? *4* 结果分析:该程序运行结果为:flase
? ? 4)函数的具体应用实例(二)
? *1* 需求:输出两个整数中的最大值。
? ? ? ? *2* 思路:
? ? ? ? ? ? 功能的结果是int型变量,即返回值类型为int。
? ? ? ? ? ? 有两个未知内容参与运算,类型为int。
? *3* 程序实现:
? ?class FunctionDemo{
? ? public static void main(String[] args){
? ? ?getMax(3,5);
? ? ?System.out.println(getMax(3,5));
? ? ?}
? ? public static int getMax(int a,int? b){
? ? ?return (a>b)?a:b;
? ? ?}
? ? }
? *4* 结果分析:该程序运行结果为:5
? ? 4)函数的具体应用实例(三)
? *1* 需求:定义一个功能,用于打印矩形。
? ? ? ? *2* 思路:
? ? ? ? ? ? 功能的结果直接打印