Java基础——第四、五、六章


第四章:流程控制

随机数
Math.random() ——> [0.0,1.0)
(int)(Math.random()*6) +1 ——>[1,6]

switch:
语法结构:

switch (表达式) {
    case1:
         语句序列1;
         [break];
    case2:
         语句序列2;
         [break];
        … … …      … …
    [default:默认语句;]
}
【注】
  1. 匹配成功,:后面的代码都会执行,所以要加break
  2. default可以写在任意位置
  3. 最后一行可以不加break

循环结构
1、while和do-while的区别:

  • while:先判断,再执行
  • do-while:先执行,再判断——>至少被执行一次,从第二次开始才进行判断

2、do-while,while,for 循环的效率一样高
3、关键字:

  • break用于强行退出循环,不执行循环中剩余的语句。
  • continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
  • return的作用,结束当前所在方法的执行.

4、break和continue

  1. 默认停止最近的循环
  2. 停止标签内的循环:
outer:   //定义标签结束的位置
	for(;;){
		while( ){
			break outer;   //根据标签来结束循环 
		}
	}

第五章:方法的定义、调用、重载

方法(method)就是一段用来完成特定功能的代码片段,类似于其它语言的函数(function)。
方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

在这里插入图片描述
重载

方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。

方法的重载只跟方法名和形参列表有关,与修饰符,返回值类型无关。方法名相同,形参列表的个数、顺序、类型不同。

第六章:数组

数组变量属于引用类型,数组也是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存储的。

在这里插入图片描述
增强for循环:

for(int num:arr){
	System.out.println(num);  //遍历数组
}

数组的初始化方法

  • 静态初始化:除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
    int[] arr = {12,23,45};
    int[] arr = new int[]{12,23,45};
  • 动态初始化:数组定义与为数组元素分配空间并赋值的操作分开进行。
    int[] arr ;
    arr = new int[3]
    arr[0] = 12;
    arr[1] = 23;
    arr[2] = 45;
  • 默认初始化:数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
    int[] arr = new int[3]; —> 数组有默认的初始化值

值传递:方法的实参传递给形参的时候一定要注意:一切都是值传递。如果是基本数据类型,那么传递的就是字面值;如果是引用数据类型,那么传递的就是地址值。
在这里插入图片描述
main方法

  1. 程序中可以有其他的方法也叫main方法,构成了方法的重载。
  2. 形参为String[] ,那么实参到底是什么?实参是 new String[0] ,默认情况下,虚拟机在调用main方法的时候就是传入了一个长度为0的数组。

可变参数

提供了一个方法,参数的个数是可变的 ,解决了部分方法的重载问题
int…num
double…num
boolean…num

  1. 方法的内部对可变参数的处理跟数组是一样
  2. 可变参数和其他数据一起作为形参的时候,可变参数一定要放在最后
  3. 我们自己在写代码的时候,建议不要使用可变参数。

Arrays工具类

  • toString:对数组进行遍历查看的,返回的是一个字符串,这个字符串比较好看
  • binarySearch:二分法查找,找出指定数组中的指定元素对应的索引
  • sort:排序 ——>升序
  • copyOf:完成数组的复制
  • copyOfRange:区间复制
  • equals:比较两个数组的值是否一样(“==” 比较的是地址)
  • fill:数组的填充
  • arraycopy:从源数组的指定位置复制指定数量的元素到目标数组的指定位置(System工具类)

二维数组的初始化

  • 静态初始化:除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。
    int[][] arr = {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
    int[][] arr =new int[][] {{1,2},{4,5,6},{4,5,6,7,8,9,9}};
  • 动态初始化:数组定义与为数组元素分配空间并赋值的操作分开进行。
    int[][] arr = new int[3][]; //本质上定义了一维数组长度为3,每个“格子”中放入的是一个数组
    arr[0] = {1,2};
    arr[1] = {3,4,5,6};
    arr[2] = {34,45,56};
    int[][] arr = new int[3][2]; //本质上:定义一维数组,长度为3,每个数组“格子”中,有一个默认的长度为2的数组
  • 默认初始化

二维数组的遍历

  1. 外层普通for循环+内层普通for循环:
for(int i=0;i<arr.length;i++){
	for(int j=0;j<arr[i].length;j++){
		System.out.print(arr[i][j]+"\t");
	}
	System.out.println();
}
  1. 外层普通for循环+内层增强for循环:
for(int i=0;i<arr.length;i++){
	for(int num:arr[i]){
		System.out.print(num+"\t");
	}
	System.out.println();
}
  1. 外层增强for循环+内层增强for循环:
for(int[] a:arr){
	for(int num:a){
		System.out.print(num+"\t");
	}
	System.out.println();
}
  1. 外层增强for循环+内层普通for循环:
 for(int[] a:arr){
	for(int i=0;i<a.length;i++){
		System.out.print(a[i]+"\t");
	}
	System.out.println();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值