da'y04
随机数(random):用于产生随机数的
使用步骤:
A.导包
import java.util.Random;
B.创建对象
Random r = new Random();
C.获取随机数
int number = r.nextInt(10);
获取数据的范围:[0,10) 包括0,不包括10
--->其实Random跟Scanner用法是一样的
return:跳出方法
break:跳出这个循环
数组是存储同一种数据类型的多个元素的容器
定义格式:
A.数据类型[] 数据名;--->推荐这个
B.数据类型 数组名[];
举例:
int[] arr;定义了一个int类型的数组,数组名是arr
int arr[];定义了一个int类型的变量,变量名是arr数组
数组的初始化:
A.所谓的初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值
B.我们有2种方式可以实现数组的初始化
a:动态初始化 只给出长度,由系统给出初始化值
b:静态初始化 给出初始化值,由系统决定长度
动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度]; //数组长度就是数组中元素的个数
静态初始化的格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
举例:
int[] arr = new int[]{1,2,3};
简化格式:
数据类型[] 数组名 = {元素1,元素2,元素3...};
int[] arr = {1,2,3};
注意:简写形式有局限性
局限性:数组的声明与赋值分开写的时候,简写形式行不通了
举例:
int[] arr;
arr ={10,20,30}; //这里编译失败
2个常见小问题:
ArrayIndexOutOfBoundsException:数组索引越界异常
产生的原因:我们访问了数组中不存在的索引对应的元素造成的
NullPointerException :空指针异常
产生的原因:由于数组的引用不再指向原来堆里面所对应的实体了,而是被重新赋值为null,如果再用这个引用去访问实体中的元素时,就会发生该异常.
数组的遍历(获取数组的元素) :
int[] arr = new int[5];
for(int i = 0; i < arr.length; i++) { //i表示数组的索引,而索引是从0开始计算的,并且索引最大值是arr.length
System.out.println(arr); //arr表示数组中的每一个元素
}
java内存分配:
栈: 存储的是局部变量(局部变量就是定义在方法中的变量)
使用完毕立即回收
堆:存储的是new出来的东西,实体,对象
A:每一个对象都有地址值
B:每一个对象的数据都有默认值
byte,short,int,long 默认值是0
float,double 默认值是 0.0
char 默认值是'\u0000'
boolean默认值是false
引用类型 默认值是 null
C:使用完毕后,会在垃圾回收器空闲的时候被回收
二维数组:一个元素为一维数组的数组
****二维数组配合索引可以获取到每一个一维数组
****每一个一维数组配合索引名可以获取到组中的元素
****举例:arr[索引][索引] ---->可以拿到二维数组中的元素
定义格式:数据类型[][] 数组名
初始化:
A:动态初始化
数据类型[][] 数组名 = new 数据类型[m][n];
m表示的是二维数组中一维数组的个数
n表示的是一维数组中的元素个数
B:静态初始化
数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...}...};
简化格式:
数据类型[][] 数组名 = {{元素...},{元素...},{元素...}...};
如何获取二维数组中的元素呢?
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}
System.out.println(arr[0][0]); //1
二维数组的遍历
依次获取二维数组中的每一个元素
day05
方法(函数):完成某种特定功能的代码
方法定义分为两部分: 声明 ,实现
声明:大括号前边的内容全部叫做声明
修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2...)
小括号的内容又被称之为形式参数,小括号的内容可以简单理解在声明某个变量,如 int a
方法的定义位置:
类中,任何方法的外部
定义格式:
修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2...) {
方法体;
return 返回值;
}
格式解释:
A:修饰符 目前记住public static
B:返回值类型 根据返回值而定
C:方法名 为了方便我们调用方法的名字(见名知意)
D:参数类型 用于限定调用方法时传入的数据类型
F:方法体 完成功能的代码
G:return 结束方法,并且把返回值带给调用者
编写方法有2个明确:
A:明确返回值类型 (根绝返回值的具体类型而定)
B:明确参数列表 明确有几个 参数,以及参数的数据类型
案例:
写一个方法用于求和
*****方法的调用:(有明确返回值的方法调用)
A:单独调用是没有意义的
B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作
C:赋值调用
void:
当方法中没有任何内容需要返还给调用者时,那么该方法的返回值类型就应该用void
方法返回值如果是void类型时,如果方法体内部没有书写return,系统会为我们默认添加一个return,表示结束该方法
方法重载: 在同一个类中,出现了方法名相同的情况.---->不能出现方法名相同,并且参数列表也相同
特点:
方法名相同,参数列表不同
参数列表不同:
参数的个数不同
参数对应的数据类型不同
注意:
在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法
如果方法的参数是基本数据类型
形式参数的改变不影响实际参数
如果参数是引用数据类型:
形式参数的改变直接影响实际参数
形参:方法声明上定义的变量(int a,int b)
实参:
实参是基本数据类型的值时,形参的改变无法影响实参的值
实参是引用数据类型的值时,形参的改变可以影响实参的值
|
|