函数
定义
函数就是定义在类中的具有特定功能的一段独立小程序,函数也称方法。
格式
修饰符 返回值类型 函数名 (参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句
return 返回值
}
返回值类型:函数运行后结果的数据类型
函数名:小写,如果多个单词,第一个小写,以后首字母大写
参数类型:形式参数的数据类型
形式参数:一个变量,用于存储调用函数时传递给函数的具体数值
return:用于结束函数,将结果返回给调用者
返回值:函数运行后的结果
1 public class FunctionDemo 2 { 3 public static void main(String[] args) 4 { 5 int x=getSum(3,5); // 调用函数 6 System.out.println("x="+x); 7 8 int y=getSum(6,8); 9 System.out.println("y="+y); 10 } 11 12 public static int getSum(int a,int b) //定义函数 13 { 14 return a+b; 15 } 16 }
特点
(1)定义函数可以将功能代码进行封装,便于对该功能进行复用;
(2)函数只有被调用才会被执行;
(3)函数的出现提高了代码的复用性;
说明:
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回给调用者,交友调用者处理。
1 public static void main(String[] args) 2 { 3 getSum(3,5); //调用函数 4 getSum(6,8); 5 } 6 7 public static void getSum(int a,int b) //定义函数 8 { 9 System.out.println(a+b); 10 }
应用
如何定义一个函数:
(1)函数是一个独立的功能,先明确该功能运算结果;(明确函数返回值类型)
(2)再明确在定义该功能的过程中是否需要未知的内容参与运算。(明确函数参数列表)
1 public static void main(String[] args) 2 { 3 boolean c=compare(3,4); 4 System.out.println(c); 5 6 int z=compare1(8,2); 7 System.out.println(z); 8 } 9 10 /* 11 需求1:判断两个数是否相等 12 13 思路: 14 1、明确功能的结果:boolean 15 2、明确功能是否有参数:有,两个整数 16 */ 17 18 public static boolean compare (int a,int b) 19 { 20 return a==b; 21 } 22 23 24 /* 25 需求2:定义功能,比较两个数大小,输出较大的数。 26 27 思路: 28 1、明确功能的结果:int 29 2、明确功能是否有参数:有,两个整数 30 */ 31 public static int compare1 (int x,int y) 32 { 33 return(x>y)?x:y; 34 }
1 public static void main(String[] args) 2 { 3 Juxing(5,20); 4 5 Juxing(15,7); 6 } 7 8 /* 9 需求:定义一个功能,用于打印矩形 10 11 思路: 12 1、明确功能的结果:没有,直接打印,返回值类型void 13 2、明确功能是否有参数:有,两个,行和列 14 */ 15 16 public static void Juxing (int h,int l) 17 { 18 for(int a=1;a<=h;a++) 19 { 20 for(int b=1;b<=l;b++) 21 { 22 System.out.print("*"); 23 } 24 System.out.println(); 25 } 26 System.out.println(); 27 }
重载
概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可
特点:与返回值类型无关,只看参数列表
好处:方便与阅读,优化了程序设计
public static void main(String[] args) { int m=getSum(4,5); int n=getSum(7,8,9);
System.out.println("m="+m);
System.out.println("n="+n); } // 定义一个加法运算,获取两个数的和 public static int getSum(int x,int y) { return x+y; } // 定义一个加法运算,获取三个数的和 public static int getSum(int x,int y,int z) { return getSum(x+y)+z; }