diff --git "a/05 \346\236\227\344\274\237\345\275\254/20221215 \346\226\271\346\263\225\347\232\204\345\272\224\347\224\250.md" "b/05 \346\236\227\344\274\237\345\275\254/20221215 \346\226\271\346\263\225\347\232\204\345\272\224\347\224\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..13b4925044f48893471ea3e1fd7014984e4a276b --- /dev/null +++ "b/05 \346\236\227\344\274\237\345\275\254/20221215 \346\226\271\346\263\225\347\232\204\345\272\224\347\224\250.md" @@ -0,0 +1,250 @@ +# 方法的应用 + +# 1. 方法概述 + +#### 1.1 方法的概念 + +注意: + +- 方法必须先创建才可以使用,该过程成为方法定义 +- 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 + +方法的定义和调用 +1.2.1 无参数方法定义和调用 +定义格式: + +```java +public static void 方法名 ( ) { + // 方法体; +} +``` + + +范例: + +```java +public static void method ( ) { + // 方法体; +} +调用格式: +``` + +```java +方法名(); +``` + + +范例: + +```java +method(); +``` + + +注意: + + 方法必须先定义,后调用,否则程序将报错 + + + +### 无参数方法的练习 + +- 需求:设计一个方法用于打印两个数中的较大数 +- 思路: + - ①定义一个方法,用于打印两个数字中的较大数,例如getMax() + - ②方法中定义两个变量,用于保存两个数字 + - ③使用分支语句分两种情况对两个数字的大小关系进行处理 + - ④在main()方法中调用定义好的方法 + + 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 + +定义一函数,用于求2个数中的较大数,并将其返回,这2个数字在主函数中由用户输入 + +代码: + +```java +public class MethodTest { + public static void main(String[] args) { + //在main()方法中调用定义好的方法 + getMax(); + } + + //定义一个方法,用于打印两个数字中的较大数,例如getMax() + public static void getMax() { + //方法中定义两个变量,用于保存两个数字 + int a = 10; + int b = 20; + + //使用分支语句分两种情况对两个数字的大小关系进行处理 + if(a > b) { + System.out.println(a); + } else { + System.out.println(b); + } + } +} + +``` + + + +## 带参数方法定义和调用 + +### 1.2 带参数方法定义和调用 + +- 定义格式: + + 参数:由数据类型和变量名组成 - 数据类型 变量名 + + 参数范例:int a + + ```java + public static void 方法名 (参数1) { + 方法体; + } + + public static void 方法名 (参数1, 参数2, 参数3...) { + 方法体; + } + + ``` + + + +```java +public static void isEvenNumber(int number){ + ... +} +public static void getMax(int num1, int num2){ + ... +} + +``` + +注意: + +```java +方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错 + +方法定义时,多个参数之间使用逗号( ,)分隔 +``` + +调用格式: + +方法名(参数); + +方法名(参数1,参数2); +范例: + +```java +isEvenNumber(10); + +getMax(10,20); +``` + + +方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错 + +1.2.1形参和实参 +形参:方法定义中的参数 + 等同于变量定义格式,例如:int number + +实参:方法调用中的参数 + 等同于使用变量或常量,例如: 10 number + +14.3.3 带参数方法练习 +需求:设计一个方法用于打印两个数中的较大数,数据来自于方法参数 } +思路: +①定义一个方法,用于打印两个数字中的较大数,例如getMax() +②为方法定义两个参数,用于接收两个数字 +③使用分支语句分两种情况对两个数字的大小关系进行处理 +④在main()方法中调用定义好的方法(使用常量) +⑤在main()方法中调用定义好的方法(使用变量) + +代码: + +```java +public class MethodTest { + public static void main(String[] args) { + //在main()方法中调用定义好的方法(使用常量) + getMax(10,20); + //调用方法的时候,人家要几个,你就给几个,人家要什么类型的,你就给什么类型的 + //getMax(30); + //getMax(10.0,20.0); + + //在main()方法中调用定义好的方法(使用变量) + int a = 10; + int b = 20; + getMax(a, b); + } + + //定义一个方法,用于打印两个数字中的较大数,例如getMax() + //为方法定义两个参数,用于接收两个数字 + public static void getMax(int a, int b) { + //使用分支语句分两种情况对两个数字的大小关系进行处理 + if(a > b) { + System.out.println(a); + } else { + System.out.println(b); + } + } +} + +``` + +# 作业 + +1. ##### 定义一函数,用于求2个数中的较大数,并将其返回,这2个数字在主函数中由用户输入 + + ```java + package 方法; + + import java.util.Scanner; + + public class D3 { + public static void main(String[] args) { + Scanner s=new Scanner(System.in); + System.out.println("请输入第一个数:"); + int a = s.nextInt(); + System.out.println("请输入第二个数:"); + int b = s.nextInt(); + System.out.println("2个数数中较大的数为:"+getNum(a,b)); + } + public static int getNum(int a,int b) { + int max = a>b?a:b; + return max; + } + } + + ``` + + 2. #### 在主函数中从键盘接收X, Y , Z3个数,编写函数计算这3个数的立方和并返回计算结果:S=X3+Y3+Z3 + + ```java + package 方法; + + import java.util.Scanner; + + public class D4 { + public static void main(String[] args) { + Scanner s=new Scanner(System.in); + System.out.println("请输入X:"); + int x = s.nextInt(); + System.out.println("请输入Y:"); + int y = s.nextInt(); + System.out.println("请输入Z:"); + int z = s.nextInt(); + System.out.println("这三个数的立方和为:"+cubicSum(x,y,z)+"="+cubic(x)+"+"+cubic(y)+"+"+cubic(z)); + } + public static int cubic(int a) { + return a*a*a; + } + public static int cubicSum(int a , int b, int c) { + int h= a*a*a+b*b*b+c*c*c; + return h; + } + } + + ``` + + \ No newline at end of file diff --git "a/05 \346\236\227\344\274\237\345\275\254/20221216 \346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" "b/05 \346\236\227\344\274\237\345\275\254/20221216 \346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..f0d244cfc2e2b080623d5ddf026f7226619f0354 --- /dev/null +++ "b/05 \346\236\227\344\274\237\345\275\254/20221216 \346\226\271\346\263\225\345\217\212\344\275\234\344\270\232.md" @@ -0,0 +1,193 @@ +#### 方法重载 + +##### 方法重载概念 + +​ 方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载 + +- ​ 多个方法在同一个类中 +- ​ 多个方法具有相同的方法名 +- ​ 多个方法的参数不相同,类型不同或者数量不同 + +- 注意: + 重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式 +- 重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值 + 来判定两个方法是否相互构成重载 + + + +# 作业 + +1. 编写函数,计算圆的面积和周长,在主函数中接受圆的半径,在自定义函数中计算并输出 + + ```java + package 方法; + + import java.util.Scanner; + + public class D6 { + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + System.out.println("输入圆的半径:"); + double r = sc.nextDouble(); + yuan(r); + } + + public static void yuan(double r){ + double gets = 3.14*r*r; + System.out.println("圆的面积为:"+ gets); + double getc=2*3.14*r; + System.out.println("圆的周长为:"+getc); + } + } + + ``` + + + +2. 在主函数中产生20个0-10之间的随机数,将这20个随机数存入数组,并通过函数计算某个数在这些随机数中出现的次数(这“某个数”是在主函数中由用户输入的) + +```java +package 方法; + +import java.util.Random; +import java.util.Scanner; + +public class D7 { + + public static void main(String[] args) { + Random ss = new Random(); + int[] sz = new int[20]; + for(int i = 0; i max) { + int n= num[0]; + num[0]=max; + max = n; + } + } + int min=num[0]; + for (int m:num){ + if (m