本文原創作者:pipi-changing
本文原創出處:http://www.cnblogs.com/pipi-changing/本文版權歸作者和博客園共有,未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接 ,否則保留追究法律責任的權利。
函數的定義
什麼是函數?
•函數就是定義在類中的具有特定功能的一段獨立小程序。 •函數也稱為方法。 函數的格式: •修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,...){
執行語句;
return 返回值;
}
返回值類型:函數運行後的結果的數據類型。
參數類型:是形式參數的數據類型。
形式參數:是一個變量,用於存儲調用函數時傳遞給函數的實際參數。
實際參數:傳遞給形式參數的具體數值。
return:用於結束函數。
返回值:該函數運算後的結果,該結果會返回給調用者。
函數的特點
定義函數可以將功能代碼進行封裝
便於對該功能進行復用
函數只有被調用才會被執行
函數的出現提高了代碼的復用性
對於函數沒有具體返回值的情況,返回值類型用關鍵字void表示,那麼該函數中的return語句如果在最後一行可以省略不寫。
注意:
•函數中只能調用函數,不可以在函數內部定義函數。
•定義函數時,函數的結果應該返回給調用者,交由調用者處理。
函數的應用
兩個明確 •明確要定義的功能最後的結果是什麼? •明確在定義該功能的過程中,是否需要未知內容參與運算 示例: •需求:定義一個功能,可以實現兩個整數的加法運算。 •分析: •該功能的運算結果是什麼?兩個數的和,也是一個整數(int) •在實現該功能的過程中是否有未知內容參與運算?加數和被加數是不確定的。(兩個參數int,int) •代碼:
int getSum(int x,int y)
{
return x+y;
}
函數的重載(overload)
重載的概念
在同一個類中,允許存在一個以上的同名函數,只要它們的參數個數或者參數類型不同即可。
重載的特點:
與返回值類型無關,只看參數列表。
重載的好處:
方便於閱讀,優化了程序設計。
重載示例:
//返回兩個整數的和
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;}
函數的功能一樣,僅僅是參與運算的未知內容不同時,
可以定義多函數,卻使用統一函數名稱,這樣方便閱讀。
在調用時,虛擬機通過參數列表的不同來區分同名函數。
數組
數組的定義
概念
同一種類型數據的集合。其實數組就是一個容器。
數組的好處
可以自動給數組中的元素從0開始編號,方便操作這些元素。
格式1:
元素類型[] 數組名 = new 元素類型[元素個數或數組長度];
示例:int[] arr = new int[5];
格式2:
元素類型[] 數組名 = new 元素類型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
數組內存結構
內存結構
Java程序在運行時,需要在內存中的分配空間。為了提高運算效率,有對空間進行了不同區域的劃分,因
為每一片區域都有特定的處理數據方式和內存管理方式。
棧內存
用於存儲局部變量,當數據使用完,所占空間會自動釋放。堆內存
數組和對象,通過new建立的實例都存放在堆內存中。 每一個實體都有內存地址值 實體中的變量都有默認初始化值 實體不在被使用,會在不確定的時間內被垃圾回收器回收方法區,本地方法區,寄存器
數組操作常見問題
數組腳標越界異常(ArrayIndexOutOfBoundsException)
int[] arr = new int[2];
System.out.println(arr[3]);
訪問到了數組中的不存在的腳標時發生。
空指針異常(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;
注意特殊寫法情況:int[] x,y[]; x是一維數組,y是二維數組。