二維數組
什么是二維?
比如(合金彈頭、超級瑪麗)
二維數組里面放一維數組。
什么是二維數組?
二維數組本質上是以數組作為數組元素的數組,即“數組的數組”,
二維數組又稱為矩陣,行列數相等的矩陣稱為方陣
怎么創建一個二維數組?
數據類型[][] 對象名 = 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){ } ..........
方法參數分兩種:
一.基本數據類型
基本數據類型的變量當做參數傳遞的時候
方法的局部變量會隨着方法的執行完畢而被釋放
局部變量:
定義在方法的聲明上和 方法體內
二.引用數據類型
引用數據類型當做參數傳遞,其實傳遞的是地址值
即使方法執行完畢,但是實體(對象、數組)還在對內存中
