定义一个函数,完成一个整数的*3+5的运算
public class FunctionDemo { public static void main(String[] args) { int x = getResult(4); System.out.println("x="+x); } public static int getResult(int num) { return num * 3 + 5; } }
静态函数只能调用被静态函数。
下图:没有具体的返回值,就不能有返回值类型出现。
没有具体的返回值,返回值类型用void来标识。
函数中不能定义函数
如何定义一个函数呢?
1,先明确函数的返回值类型
2,再明确是否需要未知的内容(明确函数的参数列表(参数的类型和参数的个数)。
返回值为void类型的函数,不可以用输出语句调用。
public class FunctionDemo { public static void main(String[] args) { System.out.println(get(4,5)); //返回值为void类型的函数,不可以用输出语句调用。 } public static void get(int a,int b) { System.out.println(a+b); return; } }
public class FunctionDemo { public static void main(String[] args) { } public static boolean compare(int a,int b) { return a==b; //这是最简单的写法,因为==是比较运算符,只有True和false两个结果。 } }
public class FunctionDemo { public static void main(String[] args) { } /* 需求:对两个数进行比较。获取较大的数 */ public static int getMax(int a,int b) { return (a>b)?a:b; } }
函数练习:
// 定义一个打印99乘法表功能的函数。 class FunctionTest { public static void main(String[] args) { print99(); } public static void print99() { for(int x=1; x<=9; x++) { for(int y=1; y<=x; y++) { System.out.print(y+"*"+x+"="+y*x+" "); } System.out.println(); } } }
函数重载:
重载的概念:在同一个类中的同名函数,它们的参数个数或者参数类型不同。
重载的特点:与返回值类型无关,只看参数列表。参数是有顺序的。
重载的好处:方便阅读,优化了程序设计。
//返回两个整数的和 int add(int x, int y) {return x+y;} //返回三个整数的和 int add(int x, int y, int z) {return x+y+z;} //返回两个小数的和 double add(double x, double y) {return x+y;}
什么时候用重载?
当定义的功能相同,但参与运算的未知内容(参数)不同
那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
class FunctionOverload { public static void main(String[] args) { add(4,5); add(4,5,6); } //定义一个加法运算,获取两个整数的和。 public static int add(int x,int y) { return x+y; } //定义一个加法,获取三个整数的和。 public static int add(int x,int y,int z) { return add(x,y)+z; } }
提高了代码的复用性:
练习:问,哪个答案和给定函数重载了
void show(int a, char b, double c) {} void show(int x, char y, double z) {} //不重载,因为和原函数一样。 int show(int a, double c, char b) {} //重载,因为参数类型不同。注意:重载和返回值类型没关系。
相同的函数不允许在同一个类中出现。