💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 大数据学习笔记第5天-函数 # ## 回顾 ## 大纲 - 方法的定义 - 方法的特点 - 方法的应用 - 方法的重载 ## 方法的定义 什么是方法? - 方法就是定义在类中的,具有特定功能的一段小程序; - 方法也称为函数; - 方法可以接收输入,根据需要输出内容; 方法定义的格式: 修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ...){ 方法体语句; return [返回值]; } 修饰符:暂时固定写成public static 返回值类型:方法执行后返回结果的数据类型 形式参数列表: 参数类型:是形式参数的数据类型; 形式参数:是一个变量,用于接收方法被调用时传给方法的实际参数的值 实际参数:放大调用时传递给形式参数的具体数值 return:关键字,用于表示方法结束 返回值:该方法运算后需要返回给调用者的结果,其类型要和返回值类型匹配,或者可以自动转型 ## 方法的特点: - 定义方法可以将功能代码进行封装; - 提高了代码的复用性; - 方法只有被调用才会被执行; - 注意:方法之间是调用关系,不可以在方法内部再定义方法; ## 方法练习: 1. 定义方法,用于计算两个double整型的和; 2. 定义方法,用于打印九九乘法表; 3. 定义方法,用于打印任何行数和列数的“+”号; 4. 定义方法,用于判断一个int数是否是偶数; 5. 定义方法,接收一个int值,返回该值对应的应该是星期几,要求switch结构实现; 6. 定义方法,获取两个数中的最大值; 7. 定义方法,获取三个数中的最大值; ### 答案 题1: /* 定义方法,用于计算两个double整型的和; */ public class Demo01{ public static void main(String[] args){ System.out.println(add(1.0,2.0)); //3.0 } public static double add(double d1, double d2){ return d1+d2; } } 题2: /* 定义方法,用于打印九九乘法表; */ public class Demo02{ public static void main(String[] args){ chenfabiao(); } public static void chenfabiao(){ for(int i=1; i<=9; i++){ for(int j=1; j<=i; j++){ System.out.print(i+"*"+j+"="+(i * j)+"\t"); } System.out.println(); } } } 打印效果如图: ![](./img/05/2018-07-20_003800.png) 题3: import java.util.Scanner; /* 定义方法,用于打印任何行数和列数的“+”号; */ public class Demo03{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入行数:"); int line = s.nextInt(); System.out.println("请输入列数:"); int col = s.nextInt(); print_plus(line,col); } public static void print_plus(int line, int col){ for(int i=1; i<=line; i++){ for(int j=1; j<=col; j++){ System.out.print("+"); } System.out.println(); } } } 打印效果如图: ![](./img/05/2018-07-20_004425.png) 题4: import java.util.Scanner; /* 定义方法,用于判断一个int数是否是偶数; */ public class Demo04{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入一个int整数:"); int num = s.nextInt(); if(is_even(num)){ System.out.println("这是一个偶数"); }else{ System.out.println("这是一个奇数"); } } public static boolean is_even(int num){ if(num % 2 == 0){ return true; } else { return false; } } } 打印效果如图: ![](./img/05/2018-07-20_004959.png) 题5: import java.util.Scanner; /* 定义方法,接收一个int值,返回该值对应的应该是星期几,要求switch结构实现; */ public class Demo05{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入一个1-7范围内的整数:"); int num = s.nextInt(); System.out.print("这表示:" + week_day(num)); } public static String week_day(int num){ String s=""; switch(num){ case 1: s = "星期一"; break; case 2: s = "星期二"; break; case 3: s = "星期三"; break; case 4: s = "星期四"; break; case 5: s = "星期五"; break; case 6: s = "星期六"; break; case 7: s = "星期日"; break; default: s = "非法值"; } return s; } } 打印效果如图: ![](./img/05/2018-07-20_010046.png) 题6: import java.util.Scanner; /* 定义方法,获取两个数中的最大值; */ public class Demo06{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入第一个整数:"); int num1 = s.nextInt(); System.out.println("请输入第二个整数:"); int num2 = s.nextInt(); System.out.println("比较大的整数是:" + max(num1, num2)); } public static int max(int num1, int num2){ if(num1 >= num2){ return num1; }else{ return num2; } } } 打印效果如图: ![](./img/05/2018-07-20_010536.png) 题7: import java.util.Scanner; /* 定义方法,获取三个数中的最大值; */ public class Demo07{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入第一个小数:"); Double num1 = s.nextDouble(); System.out.println("请输入第二个小数:"); Double num2 = s.nextDouble(); System.out.println("请输入第三个小数:"); Double num3 = s.nextDouble(); System.out.println("三个数中最大的整数是:" + max(num1, num2, num3)); } public static double max(double d1, double d2, double d3){ if(d1 > d2){ if(d1 > d3){ return d1; }else{ return d3; } }else{ if(d2 > d3){ return d2; }else{ return d3; } } } } 打印效果如图: ![](./img/05/2018-07-20_011147.png) ## 方法的重载 在同一个类中,允许出现同名,但是形参列表不同的多个方法,称为方法的重载。 为什么有方法的重载? 为了重复使用方法名,简化编程,方便阅读。 程序如何辨别到底调用的是哪个方法? 重载方法虽然方法名相同,但是参数列表不同,虚拟机就是根据调用方法时,传递不同的参数来决定到底调用的是哪一个方法。 ## 重载示例与练习 ...