一、函數
1 什麼是函數?
• 函數就是定義在類中的具有特定功能的一段獨立小程式。
• 函數也稱為方法。
函數的格式: • 修飾符 傳回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,)
{
執行語句;
return 傳回值;
}
- 傳回值類型:函數運行後的結果的資料類型。
- 參數類型:是形式參數的資料類型。
- 形式參數:是一個變數,用於儲存調用函數時傳遞給函數的實際參數。
- 實際參數:傳遞給形式參數的具體數值。
- return:用於結束函數。
- 傳回值:該值會返回給調用者。
2 函數的特點
- 定義函數可以將功能代碼進行封裝
- 便於對該功能進行複用
- 函數只有被調用才會被執行
- 函數的出現提高了代碼的複用性
- 對於函數沒有具體傳回值的情況,傳回值類型用關鍵
- 字void表示,那麼該函數中的return語句如果在最後一
- 行可以省略不寫。
注意:
• 函數中只能調用函數,不可以在函數內部定義函數。
• 定義函數時,函數的結果應該返回給調用者,交由調用者處
理。
3 函數的應用
兩個明確
• 明確要定義的功能最後的結果是什嗎?
• 明確在定義該功能的過程中,是否需要未知內容參與運算
樣本:
• 需求:定義一個功能,可以實現兩個整數的加法運算。
• 分析:
• 該功能的運算結果是什嗎?兩個數的和,也是一個整數(int)
• 在實現該功能的過程中是否有未知內容參與運算?加數和被加數是不確
定的。(兩個參數int,int)
• 代碼:
int getSum(int x,int y)
{
return x+y;
}
4 函數的重載
1、重載的概念
在同一個類中,允許存在一個以上的同名函數,只要它們的參數個數或者參數類型不同即可。
2、重載的特點:
與傳回值類型無關,只看參數列表。
3、重載的好處:
方便於閱讀,最佳化了程式設計。
4、重載樣本:
//返回兩個整數的和
int add(int x,int y){return x+y;}
//返回三個整數的和
int add(int x,int y,int z){return x+y+z;}
//返回兩個小數的和
double add(double x,double y){return x+y;}
二 數組、
1 數組的定義
概念
同一種類型資料的集合。其實數組就是一個容器。
數組的好處
可以自動給數組中的元素從0開始編號,方便操作這些元素。
格式1:
元素類型[] 數組名= new 元素類型[元素個數或數組長度];
樣本:int[] arr = new int[5];
格式2:
元素類型[] 數組名
= new 元素類型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
2 記憶體結構
Java程式在運行時,需要在記憶體中的分配空間。為了提高運算效率,有對空間進行了不同地區的劃分,因為每一片地區都有特定的處理資料方式和記憶體管理方式。
棧記憶體:用於儲存局部變數,當資料使用完,所佔空間會自動釋放。
堆記憶體:
- 數組和對象,通過new建立的執行個體都存放在堆記憶體中。
- 每一個實體都有記憶體位址值
- 實體中的變數都有預設初始化值
- 實體不在被使用,會在不確定的時間內被記憶體回收行程回收
3 數組操作常見問題
數組腳標越界異常(ArrayIndexOutOfBoundsException)
int[] arr = new int[2];
System.out.println(arr[3]);
訪問到了數組中的不存在的腳標時發生。
null 指標異常(NullPointerException)
int[] arr = null;
System.out.println(arr[0]);
arr引用沒有指向實體,卻在操作實體中的元素時。
三、 二維數組
格式1:int[][] arr = new int[3][2];
- 定義了名稱為arr的二維數組
- 二維數組中有3個一維數組
- 每一個一維數組中有2個元素
- 一維數組的名稱分別為arr[0], arr[1], arr[2]
- 給第一個一維數組1腳標位賦值為78寫法是:arr[0][1] = 78;
格式2:int[][] arr = new int[3][];
- 二維數組中有3個一維數組
- 每個一維數組都是預設初始化值null
- 可以對這個三個一維數組分別進行初始化
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
- 定義一個名稱為arr的二維數組
- 二維數組中的有三個一維數組
- 每一個一維數組中具體元素也都已初始化
- 第一個一維數組arr[0] = {3,8,2};
- 第二個一維數組arr[1] = {2,7};
- 第三個一維數組arr[2] = {9,0,1,6};
- 第三個一維數組的長度表示方式:arr[2].length;
練習:擷取arr數組中所有元素的和。使用for的嵌套迴圈即可。
注意特殊寫法情況:int[] x,y[]; x是一維數組,y是二維數組。
//遍曆二維數組
for (int x=0;x<arr.length;x++ )
{
for (int y=0;y<arr[x].length ;y++ )
{
System.out.print(arr[x][y]+",");
}
System.out.println();
}