阅读目录:
1.函数的定义
2.函数的特点
3.函数的应用
4.函数的重载
1.函数的定义
1.函数的定义 答:函数就是定义在类中的具有特定功能的一段独立小程序。 函数也称为方法。 2.函数的格式 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...) { 执行语句; return 返回值; } 返回值类型:函数运行后的结果的数据类型。 参数类型:是形式参数的数据类型。 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。 return:用于结束函数。 返回值:该函数运算后的结果,该结果会返回给调用者。
示例:
class FunctionDemo{ public static void main(String[] args) { //int a = 3; //int b = 4; //int c; //c = a+b; //c = 5+7; //c = 9+8; int c = add(3,4) System.out.println("c="+c) } public static int add(int a, int b) { return a+b; }
/*
装饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2,...) { 执行语句; return 返回值; } */}
特殊情况示例:总结: 没有具体返回值时,返回值类型用void表示注意: 如果返回值类型是void,那么函数中的return语句可以省略不写。class FunctionDemo01{ public static void main(String[] args) { myPrint(); myPrint(); } public static void myPirnt() { System.out.println("hello world") return; } public static int add(int a,int b) { return a+b; } }
2.函数的特点
函数的特点: 1.定义函数可以将功能代码进行封装 2.便于对该功能进行复用 3.函数只有被调用才会被执行 4.函数的出现提高了代码的复用性 5.对于函数没有具体返回值的情况,返回值类型用关键字void表示 那么该函数中的return语句如果在最后一行可以省略不写。 注意: 函数中只能调用函数,不可以在函数内部定义函数。 定义函数时,函数的结果应该返回给调用者,交由调用者处理。
注意点:小误区
class FunctionDemo02{ public static void main(String[] args) { int x = add(3,5); //绞肉机 System.out.println("x="+x) add(3,5) } //这种形式不合适,定义函数的误区,因为直接就输出结果了。 public static void add(int a;int b) { System.out.println(a+b); return; } //用这种格式比较适合 public static int add(int a,int b) { return a+b; } }
练习:
class FunctionDemo03{ public static void main(String[] args) { System.out.println("hello world") } /* 需求1: 定义一个功能,完成两个整数的和的获取。 思路:既然定义功能,就是可以用函数来体现。 如何定义一个函数呢? 通过两个明确来完成。 明确1:这个功能的结果是什么? 是和,是功能的结果,所以该功能的返回值类型是int 明确2:这个功能实现过程中是否需要未知内容参与运算? 有,加数和被加数,这就是函数的参数列表(参数的个数,参数的类型) 注意: 返回值类型和参数类型没有直接关系。 */ public static int add(int a,int b) { int sum = a+b; return sum; } /* 需求2: 定义一个功能,画一个矩形在控制台。 明确1: 这个功能的结果是什么? 答:没有结果,因为直接打印到了控制台,并未返回给调用者。用void表示 明确2: 这个功能实现过程中是否需要未知内容参与运算? 答:有,行和列不确定。两个。整数int */ public static void draw(int row,int col) { for (int x=1; x<=row; x++) { for (int y=1; y<=col, y++) { System.out.print("*") } System.out.println(); } } /* 需求3: 定义一个功能,比较两个数是否相等。 明确1: 这个功能的结果是什么? 答:有, boolean 明确2: 这个功能实现过程中是否需要未知内容参与运算? 答:有两个整数。 */ public static boolean equals(int a,int b) { /* if(a==b) return true; else return flase; */ //return (a == b)? true:false; return a===b; } /* 需求1: 定义一个功能,获取两个数较大的数。 明确1: 这个功能的结果是什么? 答:有,int 明确2: 这个功能实现过程中是否需要未知内容参与运算? 答:有参与比较的两个整数,int */ public static int getMax(int a, int b) { if (a>b) return a; else return b; } /* 定义功能: 打印99乘法表 */ 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+"\t"); } System.out.println() } } /* 根据考试成绩获取学生分数对应的等级 90-100 A 80-89 B 70-79 C 60-69 D 60以下 E 结果: 等级,字符,char 参数: 分数,int */ public static char getLevel(int num) { char level; if (num>=90n && num<=100) level = 'A' else if (num>=80 && num <=89) level = 'B' else if (num>=70 && num <=79) level = 'C' else if (num>=60 && num <=69) level = 'D' else level = 'E' return level; }}
3.函数的应用
4.函数的重载
1.函数的重载重载的概念: 在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。 重载的特点: 与返回值类型无关,只看参数列表 重载的好处: 方便于阅读,优化了程序设计 重载示例: //返回两个整数的和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 FunctionDemo4{ public static void main(String [] args) { //System.out.println("Hello world") printCFB(9); } /* 1.同一个类 2.同名 3.参数个数不同,或者,参数类型不同 */ //加法运算,两个整数的和 public static int add1(int a,int b) { return a+b; } //加法运算,两个小数的和 public short double add2(double a,double b) { return a+b; } //加法运算,三个整数的和 public static int add3(int a,int b,int c) { return a+b+c; } /* 打印乘法表 */ public static void printCFB(int num) { for(int x=1; x<=num; x++) { for(int y=1; y<=x; y++) { System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } } /* 打印标准乘法表 */ public static void printCFB() { printCFB(9); } }