From e1254a74b0d322c9db30b39a3ef11f5227c8f6ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A8=8A=E5=B0=8F=E9=83=AD?= <2966479092@qq.com> Date: Tue, 20 Dec 2022 22:13:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E6=AC=A1=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...44\350\257\206\346\226\271\346\263\225.md" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "47 \346\250\212\345\260\217\351\203\255/20221218 java\344\270\255\350\256\244\350\257\206\346\226\271\346\263\225.md" diff --git "a/47 \346\250\212\345\260\217\351\203\255/20221218 java\344\270\255\350\256\244\350\257\206\346\226\271\346\263\225.md" "b/47 \346\250\212\345\260\217\351\203\255/20221218 java\344\270\255\350\256\244\350\257\206\346\226\271\346\263\225.md" new file mode 100644 index 0000000..b33564a --- /dev/null +++ "b/47 \346\250\212\345\260\217\351\203\255/20221218 java\344\270\255\350\256\244\350\257\206\346\226\271\346\263\225.md" @@ -0,0 +1,64 @@ +# 方法 + +### 方法的概念 + +方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 + +注意: + +方法必须先创建才可以使用,该过程成为方法定义 + +方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 + + + +# 作业 + +1.定义一函数,用于求2个数中的较大数,并将其返回,这2个数字在主函数中由用户输入 + +```java +public class zy19 { public static int compare(int a, int b) { + if (a > b) { + System.out.println("此时最大值是:" + a); + System.out.println("此时记录数值:" + a); + return a; + } else { + System.out.println("此时最大值是" + b); + System.out.println("此时记录数值:" + b); + return b; + } + } +} +``` + + + +2.在主函数中从键盘接收X, Y , Z3个数,编写函数计算这3个数的立方和并返回计算结果:S=X3+Y3+Z3 + +```java +public class zy20 { + public static void main(String[] args) { + + Scanner num1 = new Scanner(System.in); + System.out.println("请输入数字X"); + int X = num1.nextInt(); + + Scanner num2 = new Scanner(System.in); + System.out.println("请输入数字Y"); + int Y = num2.nextInt(); + + Scanner num3 = new Scanner(System.in); + System.out.println("请输入数字Z"); + int Z = num3.nextInt(); + + + int S =getSum(X,Y,Z); + System.out.println("立方和S=" + S); +} + + public static int getSum(int X,int Y,int Z){ + return X=X*X*X+Y*Y*Y+Z*Z*Z; + } +} +``` + -- Gitee From 03ac7fa04ed55bdf90b91b1bc437a4d98ccfddcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A8=8A=E5=B0=8F=E9=83=AD?= <2966479092@qq.com> Date: Tue, 20 Dec 2022 22:38:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...11\345\222\214\350\260\203\347\224\250.md" | 227 ++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 "47 \346\250\212\345\260\217\351\203\255/20221220 java\346\226\271\346\263\225\347\232\204\345\256\232\344\271\211\345\222\214\350\260\203\347\224\250.md" diff --git "a/47 \346\250\212\345\260\217\351\203\255/20221220 java\346\226\271\346\263\225\347\232\204\345\256\232\344\271\211\345\222\214\350\260\203\347\224\250.md" "b/47 \346\250\212\345\260\217\351\203\255/20221220 java\346\226\271\346\263\225\347\232\204\345\256\232\344\271\211\345\222\214\350\260\203\347\224\250.md" new file mode 100644 index 0000000..fc6ce50 --- /dev/null +++ "b/47 \346\250\212\345\260\217\351\203\255/20221220 java\346\226\271\346\263\225\347\232\204\345\256\232\344\271\211\345\222\214\350\260\203\347\224\250.md" @@ -0,0 +1,227 @@ +# 方法的定义和调用 + +格式:方法名(); + +注意: + +方法定义完毕后,需要调用才能执行 + +方法必须先定义后调用,否则程序将报错 + +方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错 + +### Debug 查看方法调用的执行流程 + +进入一个方法的时候,需要用 Step Into F7 + +在方法内部,看每一行代码的执行流程,使用 Step Over F8 + +注意观察方法的出现和消失,以及变量的变化 + +### 形参和实参 + +1.形参:方法定义中的参数 + + 等同于变量定义格式,例如:int number + +2.实参:方法调用中的参数 + + 等同于使用变量或常量,例如: 10 number + + + +# 方法的注意事项 + +### 方法的通用格式(掌握) + +格式: + +public static 返回值类型 方法名(参数) { + +方法体; + +return 数据 ; + +} + +解释: + +public static 修饰符,目前先记住这个格式 + +返回值类型 方法操作完毕之后返回的数据的数据类型 + +如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return + +方法名:调用方法时候使用的标识 + +参数:由数据类型和变量名组成,多个参数之间用逗号隔开 + +方法体:完成功能的代码块 + +return:如果方法操作完毕,有数据返回,用于把数据返回给调用者 + +定义方法时,要做到两个明确: + +1.明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果 +有,写对应的数据类型 +2.明确参数:主要是明确参数的类型和数量 + +调用方法时注意:void类型的方法,直接调用即可 + +​ 非void类型的方法,推荐用变量接收调用 + +方法不能嵌套定义 + +void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据 + +# 方法重载 + +方法重载概念:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载 + +多个方法在同一个类中 +多个方法具有相同的方法名 +多个方法的参数不相同,类型不同或者数量不同 + +注意:重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式 + +重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值 +来判定两个方法是否相互构成重载 + + + +# 作业 + +1.编写函数,计算圆的面积和周长,在主函数中接受圆的半径,在自定义函数中计算并输出 + +```java +public class zy20 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("输入圆的半径"); + ad(sc.nextDouble(), 3.14); + } + + public static void ad(double a, double b) { + System.out.println("半径是" + 2 * b * a); + System.out.println("面积是" + b * a * a); + } +} +``` + +2.在主函数中产生20个0-10之间的随机数,将这20个随机数存入数组,并通过函数计算某个数在这些随机数中出现的次数(这“某个数”是在主函数中由用户输入的) + +```java +public class zy20 { + public static void main(String[] args) { + long[] num = new long[10]; + for (int i = 0; i < 20; i++) { + num[i] = Math.round(Math.random() * 10); + } + Scanner sc = new Scanner(System.in); + System.out.println("输入一个数"); + long A = sc.nextLong(); + af(num, A); + } + + public static void af(long[] num, long A) { + int count = 0; + for (int i=0;i< num.length;i++){ + if (A==num[i]){ + count++; + } + } + System.out.println(Arrays.toString(num)); + System.out.println("次数是"+count); + } +} +``` + +3.在主函数中接收10个数存入数组,在自定义函数中,将该数组中的最大值与第一个元素交换,最小值与最后一个元素交换,然后在主函数中输出交换后的数组 + +```java +public class zy20 { + public static void main(String[] args) { + int ac[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + System.out.println(Arrays.toString(ac)); + add(ac); + + } + + public static void add(int brr[]) { + int max = brr[0]; + int x = brr[0]; + + for (int i = 0; i < brr.length; i++) { + if (brr[i] > max) { + max = brr[i]; + } + } + for (int i=0;i< brr.length;i++){ + if (brr[i]==max){ + brr[i]=x; + } + } + brr[0]=max; + System.out.print("["); + for (int i=0;i< brr.length;i++){ + + System.out.print(brr[i]); + if (i== brr.length-1){ + continue; + } + System.out.print("、"); + } + System.out.print("]"); + } +} +``` + +4.用自定义函数是实现求某数组元素的和(大小不固定) + +```java +public class zy20 { + public static void main(String[] args) { + + Scanner sc = new Scanner(System.in); + System.out.println("数组的长度是?"); + int [] num = new int[sc.nextInt()]; + + for(int i=0;i < num.length;i++){ + System.out.println("请输入第" + (i+1) + "个元素" ); + num[i]= sc.nextInt(); + } + + arr(num); + } + + public static void arr(int[] num){ + int sum=0; + for(int i=0;i< num.length;i++){ + sum+=num[i]; + } + System.out.println("数组元素和为" + sum); + } +} +``` + +5.用户输入整数n,计算1!+(1!+2!)+(1!+2!+3!)+…..+(1!+2!+…n!) + +```java +public class zy20 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入数字n"); + int n= sc.nextInt(); + + System.out.println("1!+(1!+2!)+(1!+2!+3!)+…..+(1!+2!+…n!)=" + num(n)); + } + + public static int num(int n){ + int sum=1; + for(int i=1;i<=n;i++){ + sum=sum*i; + } + return sum; + } +} +``` \ No newline at end of file -- Gitee