二維數組與方法(函數)


二維數組

什么是二維?

​ 比如(合金彈頭、超級瑪麗)

​ 二維數組里面放一維數組。

什么是二維數組?

​ 二維數組本質上是以數組作為數組元素的數組,即“數組的數組”,

​ 二維數組又稱為矩陣,行列數相等的矩陣稱為方陣

怎么創建一個二維數組?

數據類型[][] 對象名 = 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){ } ..........

方法參數分兩種:

​ 一.基本數據類型

​ 基本數據類型的變量當做參數傳遞的時候

​ 方法的局部變量會隨着方法的執行完畢而被釋放

​ 局部變量:

​ 定義在方法的聲明上和 方法體內

​ 二.引用數據類型

​ 引用數據類型當做參數傳遞,其實傳遞的是地址值

​ 即使方法執行完畢,但是實體(對象、數組)還在對內存中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM