From 6584b89815b503978cb79f13a56ee24d4014517d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E9=94=8B?= <2069827762@qq.com> Date: Tue, 20 Dec 2022 23:27:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E5=8D=81=E4=B8=80=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 --- ...71\346\263\225\345\244\215\344\271\240.md" | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 "07 \345\210\230\346\226\207\351\224\213/20221220 \346\226\271\346\263\225\345\244\215\344\271\240.md" diff --git "a/07 \345\210\230\346\226\207\351\224\213/20221220 \346\226\271\346\263\225\345\244\215\344\271\240.md" "b/07 \345\210\230\346\226\207\351\224\213/20221220 \346\226\271\346\263\225\345\244\215\344\271\240.md" new file mode 100644 index 0000000..cde7294 --- /dev/null +++ "b/07 \345\210\230\346\226\207\351\224\213/20221220 \346\226\271\346\263\225\345\244\215\344\271\240.md" @@ -0,0 +1,190 @@ +## 笔记 + +### 方法重载 + +方法重载概念 + +方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载 + +1.多个方法在同一个类中 + +2.多个方法具有相同的方法名 + +3.多个方法的参数不相同,类型不同或者数量不同 + +###### 注意: + +重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式 + +#### 方法传递 + +- 基本数据类型的参数,形式参数的改变,不影响实际参数。(每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失) + +- 引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以 + +即使方法弹栈,堆内存中的数据也已经是改变后的结果(对于引用类型的参数,形式参数的改变,影响实际参数的值) + +## 作业 + +1.编写函数,计算圆的面积和周长,在主函数中接受圆的半径,在自定义函数中计算并输出 + +```java +import java.util.Scanner; + +public class D7 { + //计算圆的面积,在主函数中接受圆的半径,在自定义函数中计算并输出。 + public static void main(String[] args) { + while (true){ + System.out.println(radius());} + } + public static double radius(){ + Scanner sc = new Scanner(System.in); + System.out.println("请输入半径:"); + double a = sc.nextDouble(); + double area = Math.PI * Math.pow(a, 2); + return area; + } +} + +``` + + 2.在主函数中产生20个0-10之间的随机数,将这20个随机数存入数组,并通过函数计算某个数在这些随机数中出现的次数(这“某个数”是在主函数中由用户输入的) + +```java +import java.util.Random; +import java.util.Scanner; + +public class D8 { + public static void main(String[] args) { + //在主函数中产生20个0-10之间的随机数,将这20个随机数存入数组,并通过函数计算某个数在这些随机数中出现的次数(这“某个数”是在主函数中由用户输入的) + System.out.println("请输入一个0-10的整数"); + Scanner sc = new Scanner(System.in); + int a = sc.nextInt(); + if (a > 10 | a < 0) { + System.out.println("无效数字"); + } else { + fdd(a); + } + } + public static void fdd(int n) { + int d = 0; + Random ran = new Random(); + int[] num = new int[20]; + for (int i = 0; i < num.length; i++) { + num[i] = ran.nextInt(11); + if (n == num[i]) { + d++; + } + } + System.out.println("您输入的数字" + n + "在这次随机在 0-10 抽取20个数中一共重复" + d + "次"); + } +} +``` + + 3.在主函数中接收10个数存入数组,在自定义函数中,将该数组中的最大值与第一个元素交换,最小值与最后一个元素交换,然后在主函数中输出交换后的数组 + +```java + +import java.util.Arrays; +import java.util.Scanner; + +public class D6{ + // 在主函数中接收10个数存入数组,在自定义函数中,将该数组中的最大值与第一个元素交换,最小值与最后一个元素交换,然后在主函数中输出交换后的数组 + public static void main(String[] args) { + Jh(); + } + public static void Jh() { + System.out.println("请输入十个整数"); + Scanner sc = new Scanner(System.in); + int[] Main = new int[10]; + //用户输入数组循环 + for (int i = 0; i < Main.length; i++) { + int a = sc.nextInt(); + Main[i] = a; + } + int max = Main[0]; + int min = Main[0]; + int remax =Main[0];//记入开头便于交换 + int remin =Main[9];//记入结尾便于交换 + for (int am = 0; am < Main.length; am++) { + if (max < Main[am]) { + max = Main[am]; + } + } + for (int in = 0; in < Main.length; in++) { + if (min > Main[in]) { + min = Main[in]; + } + } + int cmax=0; + //获取最大值的所在位置 + max:for (int i=0;i< Main.length;i++) { + if (max == Main[i]) { + cmax += i; + break max; + } + } + int cmin=0; + //获取最小值的所在位置 + min:for (int j=0;j< Main.length;j++) { + if (min == Main[j]) { + cmin += j; + break min; + } + } + Main[0]=max;Main[cmax]=remax;//最大值交换 + Main[9]=min;Main[cmin]=remin; + System.out.println(Arrays.toString(Main)); + } +} +``` + +4. 用自定义函数是实现求某数组元素的和(大小不固定) + +```java + import java.util.Scanner; + public class D9 { + //用自定义函数是实现求某数组元素的和(大小不固定) + public static void main(String[] args) { + sum(); + } + public static void sum(){ + Scanner sc = new Scanner(System.in); + int[] a=new int[5]; + int sum=0; + for (int i = 0; i< a.length;i++){ + a[i]= sc.nextInt(); + sum+=a[i]; + } + System.out.println("该数组数据和为"+sum); + } + } +``` + +5.用户输入整数n,计算1!+(1!+2!)+(1!+2!+3!)+…..+(1!+2!+…n!) + +```java +import java.util.Scanner; + +public class D10 { + //用户输入整数n,计算1!+(1!+2!)+(1!+2!+3!)+…..+(1!+2!+…n!) + public static void main(String[] args) { + Jc(); + } + public static void Jc(){ + Scanner sc=new Scanner(System.in); + int n= sc.nextInt(); + long sum=0;long num; + for (int i=1;i<=n;i++){ + num=1; + for (int j=1;j<=i;j++){ + num=num*j; + sum+=num; + } + } + System.out.println(sum); + } +} + +``` + -- Gitee