hp实训8.04_Java基础之二维数组和方法
二维数组
二维数组:数组中的数组
- 1.声明二维数组:
- 数据类型[][] 数据名;
- 第一个中括号:二维数组中有几个一维数组 行
- 第二个中括号:每个一维数组中有多少元素 列
- 2.初始化二维数组
- 第一种动态初始化
- 第二种静态初始化
//1.创建一个二维数组,并动态初始化
//5代表5行或者表示包含5个一维数组
//7代表7列或者表示每个一维数组的长度是7
int[][] array=new int[5][7];
//2.如何赋值
//第一个一维数组的第一个元素值为10
array[0][0]=10;
//第四个一维数组的第7个元素的值为5
array[3][6]=5;
System.out.println(array[0][0]);
System.out.println(array[2][0]);
//3.静态初始化
int[][] array1=new int[][]{{1,2},{2,3,4},{5,9,89,1}};
System.out.println(array1[2][2]);//89
//简写
int[][] array2={{4,90},{23,12},{12,23,45}};
System.out.println("获取二维数组的长度:"+array2.length);
//4.遍历二维数组
//外层循环控制行(每一个一维数组)
for(int i=0;i<array2.length;i++){
//内存循环控制的是列
for(int j=0;j<array2[i].length;j++){
System.out.print(array2[i][j]+" ");
}
System.out.println();
}
System.out.println("使用增强for循环=============");
for(int[] i:array2){
for(int a:i){
System.out.print(a+" ");
}
System.out.println();
}
方法
什么是方法?
- 方法就是把一堆需要反复执行的业务逻辑代码封装起来,如果程序需要使用这段代码的时候,我们直接调用方法即可,
- 就不需要返回的去写重复的代码了
好处
-
提高代码的重用性,维护性,可读性好,执行效率
-
可以把方法比喻一个榨汁机
-
材料:水果
-
参出物:果汁
-
映射到java程序中:
-
材料(参数):进入方法的数据
-
产出物(返回值):方法根据参数处理后的结果
怎么定义一个方法?
-
访问修饰符 [static] 方法的返回值类型 方法名(形参列表){
逻辑代码块;
return 返回值;
} -
1.访问修饰符(权限修饰符)
public:公共的,在当前项目下的任何地方都可以访问
private:私有的,能在当前类下面访问
protected:受保护的,在同一个包或者其他派生类中可以访问
default:缺省,只能在当前包下面进行访问 -
2.方法的返回值类型:方法执行完成以后最终产生的结果是什么类型的
-
3.方法名
自己定义的名字,首字母小写,驼峰式命名法 getStudentById -
4.形参列表 :由多个形参组成的列表 (int a,int b)
形参:用于接收调用者实际传过来的数据 -
5.return:
(1)把方法最终处理的结果返回给调用者 (2).结束当前方法 -
注意:返回的数据类型必须要和返回值类型一致
方法执行流程图
- 参数传递:调用者在调用方法的时候,向方法内传入数据的一系列动作
- 形参:在【定义】方法时候,写在小括号里面的参数,作用接受调用者传递的数据
- public static int sum(int a,int b){//形参
- 实参:在【调用】方法的时候,真正传递到方法的数据
- int result=sum(10,20);//实参
参数传递
有两种类型
- 基本数据类型(以及String):形参的操作不会影响实际的参数
- 引用数据类型:(除了String以后):形参的操作会影响实际参数
方法参数传递-基本数据类型图
方法参数传递-引用类型图
-
对于类似累加的操作,因为我形参列表不同,所以我定义了多个方法名
-
弊端:
-
1.麻烦
-
2.代表调用者需要记住多个方法名,如果方法名过多,有可能出现调用错误的情况
-
可不可把这些类似操作起一个一个方法名可以吗,
-
可以,使用方法重载
什么是方法重载呢?
- 方法名必须相同,参数列表必须不相同
- 什么是参数列表:
- 1.参数列表的个数不同
- 2.参数类型不同
- 3.参数类型的顺序不同
- 注意:方法重载和返回值类型无关