二维数组与方法(函数)

二维数组

什么是二维?

​ 比如(合金弹头、超级玛丽)

​ 二维数组里面放一维数组。

什么是二维数组?

​ 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,

​ 二维数组又称为矩阵,行列数相等的矩阵称为方阵

怎么创建一个二维数组?

数据类型[][]  对象名 = new 数据类型[x][y]; x代表行 y代表列 

例如:

     int [ ][ ] a = new int [2] [2];

数组 : 使用索引来操作元素, 下面给二维数组赋值

    a[0] [0] = 1; //第一行第一列

    a[0] [1] = 2;//第一行第二列

    a[1] [0] = 3;//第二行第一列

    a[1] [1] = 4;//第二行第二列

 如何遍历一个二维数组:

for(int i =0;i<a.length;a++){ // 外层循环代表行 a.length 求行数

  for(int j =0;j<a[i].lenght;j++){//内层循环代表列 a[i].length 求每一行的列数

    System.out.print(a[i][j])//打印第i行第j列的值  

    }

System.out.println();

  }

练习:二维数组求和

二维数组直接赋值:

第二种情况:
int[][] c = new int[][]{
    				{1,2},
 {3,4}  };

 学到这里二维数组完了吗?没呢,还有一种情况。

// 先声明行,后声明列:
String[][] y = new String[2][]; y[0] = new int[2]; // 定义第一行有二列 y[1] = new int[3];//定义第二行有三列
// 例如:多个市属于一个省
// 广东省
y[0][0] = "广州市"; y[0][1] = "深圳市"; //陕西省 y[1][0] = "宝鸡市"; y[1][1] = "西安市";

拔高练习:打印杨辉三角

 int[ ][ ] a = new int[10] [ ]; 

 for(int i =0;i<a.length;i++){

    a[i] = new int [i+1];

     for(int j=0;j<a[i].length;j++){  

      if(j ==0 || i==j){

        a[i][j] =1;

      }else{

        a[i][j] =a[i-1][j]+a[i-1][j-1];

      }

    }

  }

   for(int[] is : a){

    for(int i : is){

      System.out.print(i+"\t")

      }

      System.out.println();

    }

 

方法

什么是方法?

​ 我们经常说做事要有方式方法。实现某个目的的具体过程.

​ 例如我们学过 main函数在里面写的排序,求水仙花数等

为什么要用方法?

​ 例如:有三个人 小明,小华,小红三个人,

​ 老师要求小明把班级语文分数成绩排名

​ 要求小华把班级数学分数成绩排名

​ 要求小华把班级英语分数成绩排名

​ 这个时候都要用到排序,我们此时可以把制作一个排序的方法供他们使用

​ 这样代码就只用写一次,多次使用,这样就提高了代码的复用性

方法分为两类四种:

  访问修饰符  是否静态 有无返回值  方法名(有无参数){

}

  //相似与

  public static void main(String[] args){

}

一. 无返回值

// 1.无参数无返回值

  public static void demo1(){

    System.out.println("我是无参数无返回值");

}

// 1.有参数无返回值
// 何为参数? f(x)这个函数里面的 x 就叫做参数

 public static void demo2(int i){// int i 就是参数 

 System.out.println(i);

}

练习: 传递一个一维数组,求出最大值。

1.定义方法的步骤是什么?

​ 定义方法有两个明确:

​ a.是否有返回值

​ b.是否有未知参,参与运算

2.方法的执行流程是什么?

​ 自己定义的方法不被调用的时候是不会被执行的。

​ 在主函数里直接写上方法的名字即可(要考虑是否需要参数)

调用者: 主函数,main

执行者: 某一个方法本身

实际参数: 实际参与运算的数据

形式参数: 方法小括号里的变量

二.有返回值

// 1. 无参数有返回值  
// 什么是返回值? 把void这个关键字改为 数据类型时就说明这个方法是有返回值的 // 怎么返回? 用 return 关键字, 返回的值的类型与方法上面的数据类型一致

  public static int demo3(){

  return 5;// 返回值,顾名思义返回的是一个值

}

  public static int demo4(){

    int a =5;

    return a;

}

//2.有参数有返回值
public static int demo5(int i){ return i; }

注意:

​ 其实每一个方法最后一行都有一个return,没有返回值可以省略不写,但系统会帮我们添加一个,其作用就是为了结束方法

​ 如果手动的写出 return 就不允许带回任意的数据。

public static void test(){ return; }

定义及使用方法的注意事项有哪些?

​ 1.方法不能定义在另外一个方法的里面

​ 2.写错方法名字

​ 3.写错了参数列表

​ 4.方法返回值是void,方法中可以省略return 不写

​ (return 后面与下面不能有代码)

​ 5.方法返回值类型和return 后面数据类型必须匹配

​ 6.调用方法的时候,返回值void不能写在输出语句中

练习:

addition、subtract、 multiply、division

传递数组排序

方法的重载

什么是方法的重载?

​ 在同一个类中:

​ 方法名相同

​ 参数列表不同(参数的顺序、个数、类型)

​ 和返回值无关

public static void test1(){ } public static void test2(int i){ } public static void test3(String name){ } public static void test4(char sex){ } public static void test5(double weight){ } public static void test6(int i,int j){ } public static void test7(int i,String name){ } ..........

方法参数分两种:

​ 一.基本数据类型

​ 基本数据类型的变量当做参数传递的时候

​ 方法的局部变量会随着方法的执行完毕而被释放

​ 局部变量:

​ 定义在方法的声明上和 方法体内

​ 二.引用数据类型

​ 引用数据类型当做参数传递,其实传递的是地址值

​ 即使方法执行完毕,但是实体(对象、数组)还在对内存中

猜你喜欢

转载自www.cnblogs.com/zcq-Test/p/10656350.html