Java基础——Day07——多级方法的调用和数组的基础

Day07

一、方法的多级调用

package com.qf.func;

public class Demo01 {
	public static void main(String[] args) {
		System.out.println("准备调用show01");
		show01();
		System.out.println("main方法结束啦");
	}

	public static void show01() {
		System.out.println("show01被调用啦");
		
		System.out.println("在show01中调用show02");
		
		show02();
		
		System.out.println("show01调用show02结束");
		System.out.println("show01调用结束啦");
	}

	public static void show02() {
		System.out.println("show02被调用啦");
		
		System.out.println("在show02中调用show03");
		
		show03();
		
		System.out.println("show02调用show03结束");
		System.out.println("show02调用结束啦");
	}

	public static void show03() {
		System.out.println("show03被调用啦");
		
		System.out.println("show03啥也没干....");
		
		System.out.println("show03调用结束啦");
	}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RkFC0kyS-1596597251406)(方法多级调用运行过程.png)]

二、递归

  • 在方法中调用方法本身
  • 可能会造成无穷递归,需要设置合适的出口
package com.qf.func;

public class Demo03 {
	public static void main(String[] args) {
		int mul = getMul(5);
		System.out.println(mul);
	}

	/**
	 * 获取阶乘的方法
	 * @param num
	 * @return
	 */
	public static int getMul(int num) {
		/**
		 * 5!
		 * 	5*4*3*2*1 ===  
		 * 	5*4!
		 * 		5*4*3!
		 * 			5*4*3*2!
		 * 				5*4*3*2*1!
		 * 
		 */
		System.out.println(num);
		if (num == 1) {
			return 1;
		}
		return num * getMul(num-1);
	}
}

三、方法重载

3.1 定义

  • 在同一个类中,出现了名字相同的方法
  • 他们的参数列表不同
  • 和返回值类型无关
package com.qf.func;

public class Demo04 {
	public static void main(String[] args) {
		int sum01 = getSum(3,5);
		
		int sum02 = getSum(2,3,5);
		
		// getSum(int,int)
		/**
		 * 在同一个类中
		 * 出现了名字相同的方法
		 * 他们的参数列表不同
		 * 和返回值类型无关
		 */
	}

	public static int getSum(int i, int j) {
		return i + j;
	}
	
	public static int getSum(int a, int b,int c) {
		return a + b + c;
	}
	
	/*
	 * public static void getSum(int a, int b,int c) { System.out.println(a + b +
	 * c);; }
	 */
	
}

3.2 参数列表不同的情况

  • 参数列表中形参的数量不同
  • 参数列表中形参的数据类型不同
  • 参数列表中参数的数据类型顺序不同
package com.qf.func;

public class Demo05 {
	public static void main(String[] args) {
		
	}
	
	/**
	 * getSum(int,int)
	 * @param a
	 * @param b
	 * @return
	 */
	public static int getSum(int a,int b) {
		return a+b;
	}
	
	/**
	 * getSum(int,int,int)
	 * @param a
	 * @param b
	 * @return
	 */
	public static int getSum(int a,int b,int c) {
		return a+b+c;
	}
	
	/**
	 * getSum(int,double)
	 * @param a
	 * @param b
	 * @return
	 */
	public static double getSum(int a,double b) {
		return a+b;
	}
	
	/**
	 * getSum(double,int)
	 * @param a
	 * @param b
	 * @return
	 */
	public static double getSum(double a,int b) {
		return a+b;
	}
}

练习

package com.qf.func;

import java.util.Scanner;

public class Demo06 {
	public static void main(String[] args) {
		// 键盘录入一个byte范围的数字,返回这个数字对应的字符
		/**
		 * 1、创建Scanner对象
		 * 2、提示输入byte范围内的数字
		 * 3、获取这个数字
		 * 4、判断数字是否合法
		 * 5、合法的情况下调用方法,获取结果
		 * 
		 */
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个数字(0--127):");
		
		byte num = sc.nextByte();
		
		// 判断
		if (num>=0 && num<=127) {
			char c = getChar(num);
			System.out.println(num + ":" + c);
		} else {
			System.out.println("数字不在合法范围内");
		}
	}

	/**
	 * byte转换成char
	 * @param num
	 * @return
	 */
	public static char getChar(byte num) {
		// 获取num对应的字符
		char c = (char)num;
		return c;
	}
}

四、数组

4.1 定义

  • 存储一组相同类型数据的容器
  • 创建的时候必须确定数字的数据类型和长度
  • 数组中的对象在内存中是连续存在的
  • 数组中的元素都有一个索引(下标),从0开始到长度减一
  • 数组的地址是数组中国第一个元素的地址

4.2 数组创建

package com.qf.arr;

public class Demo01 {
	public static void main(String[] args) {
		// 创建数组
		int[] arr = new int[5];
		System.out.println(arr.length);
		System.out.println(arr);
		
		System.out.println(arr[0]);
		System.out.println(arr[1]);
		System.out.println(arr[2]);
		System.out.println(arr[3]);
		System.out.println(arr[4]);
		// System.out.println(arr[5]);
		
		int[] arr02 = {11,22,33,44,55,66};
		System.out.println(arr02[0]);
		System.out.println(arr02[1]);
		System.out.println(arr02[2]);
		System.out.println(arr02[3]);
		System.out.println(arr02[4]);
		
		int[] arr03;
		arr03 = new int[5];
		System.out.println(arr03.length);
		
		int[] arr04;
		//arr04 = {111,222,333};
		arr04 = new int[] {1111,2222,3333,4444,5555};
		System.out.println(arr04.length);
		System.out.println(arr04[0]);
		
		
		int arr05[] = new int[50];
		System.out.println(arr05.length);
		
		int[] arr06 = new int[] {10,20,30,40,50};
		System.out.println(arr06.length);
		System.out.println(arr06[0]);
		
	}
}

4.3 各种类型数组元素的默认值

  • 数据在数组中的默认值
    • 整型 0
      • 浮点型 0.0
      • 字符型 \u0000
      • 布尔型 false
      • 引用类型 null
package com.qf.arr;

import java.util.Scanner;

public class Demo02 {
	 public static void main(String[] args) {
		 // 查看各种类型数据数组的默认值
		 /**
		  * 数据在数组中的默认值
		  * 	整型		0
		  * 	浮点型	0.0
		  * 	字符型	\u0000
		  * 	布尔型	false
		  * 	引用类型	null
		  */
		 byte[] arrByte = new byte[10];
		 System.out.println(arrByte.length);
		 System.out.println(arrByte[1]);
		 
		 short[] arrShort = new short[10];
		 System.out.println(arrShort[5]);
		 
		 int[] arrInt = new int[15];
		 System.out.println(arrInt.length);
		 System.out.println(arrInt[6]);
		 
		 long[] arrLong = new long[10];
		 System.out.println(arrLong[7]);
		 
		 System.out.println("=====================");
		 
		 float[] arrFloat = new float[10];
		 System.out.println(arrFloat[3]);
		 
		 double[] arrDouble = new double[10];
		 System.out.println(arrDouble[4]);
		 
		 System.out.println("=====================");
		 
		 boolean[] arrBoolean = new boolean[10];
		 System.out.println(arrBoolean[9]);
		 
		 System.out.println("=====================");
		 // \u0000
		 char[] arrChar = new char[10];
		 System.out.println(arrChar[2]);
		 System.out.println('\u4e0a');
		 
		 System.out.println("====================");
		 
		 String[] arrString = new String[10];
		 System.out.println(arrString[1]);
		 
		 Scanner[] arrScanner = new Scanner[10];
		 System.out.println(arrScanner[6]);
		 
	 }
}

五、数组遍历

  • 输出数组中的每一个元素
package com.qf.arr;

public class Demo04 {
	public static void main(String[] args) {
		String[] names = {"宋江","吴用","卢俊义","公孙胜","秦明"};
		System.out.println(names[0]);
		System.out.println(names[1]);
		System.out.println(names[2]);
		System.out.println(names[3]);
		System.out.println(names[4]);
		
		System.out.println("=========for遍历========");
		
		for (int i = 0; i < names.length; i++) {
			System.out.println(names[i]);
		}
		
		System.out.println("=======while遍历==========");
		
		int index = 0;
		while (index < names.length) {
			System.out.println(names[index]);
			index++;
		}
	}
}

六、数组案例

  • 计算数组元素的总和和平均值
package com.qf.arr;

public class Demo06 {
	public static void main(String[] args) {
		int[] arr = new int[] {14234,32,34,344,326235,8454321,9,5565432,42};
		// 求和,,,求平均值
		/**
		 * 拿到每一个元素---遍历
		 * 累加获取结果
		 */
		
		int sum = 0;
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
			sum += arr[i];
		}
		
		System.out.println("数组中元素累加的结果是:" + sum);
		
		
		// sum = arr[0] + arr[1] + arr[2] + arr[0] + arr[1] + arr[2] + arr[0] + arr[1] + arr[2];
		
		double aver = 1.0 * sum / arr.length;
		System.out.println("平均值是:" + aver);
		
	}
}

  • 获取数组中的最大的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值