java 方法概述
方法概述:
假設有一個遊戲程序,程序在運行過程中,要不斷地發射炮彈(植物大戰殭屍)。發射炮彈的動作需要編寫100行的代碼,在每次實現發射炮彈的地方都需要重複地編寫這100行代碼,這樣程序會變得很臃腫,可讀性也非常差。爲了解決代碼重複編寫的問題,可以將發射炮彈的代碼提取出來放在一個{}中,併爲這段代碼起個名字,這樣在每次發射炮彈的地方通過這個名字來調用發射炮彈的代碼就可以了。上述過程中,所提取出來的代碼可以被看作是程序中定義的一個方法,程序在需要發射炮彈時調用該方法即可。
方法定義及格式
簡單的說:方法就是完成特定功能的代碼塊
在很多語言裏面都有函數的定義
函數在Java中被稱爲方法
格式:
修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2…) {
函數體;
return 返回值;
}
方法格式的解釋說明
方法格式解釋
修飾符 比較多,後面會詳細介紹。目前public static
返回值類型 用於限定返回值的數據類型
方法名 一個名稱,爲了方便我們調用方法
參數類型 限定調用方法時傳入參數的數據類型
參數名 是一個變量,接收調用方法時傳入的參數
方法體 完成功能的代碼
return 結束方法以及返回方法指定類型的值
返回值 程序被return帶回的結果,返回給調用者
有明確返回值的方法調用
有明確返回值的方法調用:
單獨調用,沒有意義
輸出調用,有意義,但是不夠好,因爲我不一定非要把結果輸出
賦值調用,推薦方式
方法注意事項
方法不調用不執行
方法與方法是平級關係,不能嵌套定義
方法定義的時候參數之間用逗號隔開
方法調用的時候不用在傳遞數據類型
如果方法有明確的返回值,一定要有return帶回一個值
沒有明確返回值的方法調用
沒有明確返回值的函數調用:
其實就是void類型方法的調用
只能單獨調用
方法重載
方法重載概述
在同一個類中,允許存在一個以上的同名方法,只要它們的參數個數或者參數類型不同即可。
方法重載特點
與返回值類型無關,只看方法名和參數列表
在調用時,虛擬機通過參數列表的不同來區分同名方法
數組概述
數組概述
需求:現在需要統計某公司員工的工資情況,例如計算平均工資、找到最高工資等。假設該公司有80名員工,用前面所學的知識,程序首先需要聲明80個變量來分別記住每位員工的工資,然後在進行操作,這樣做會顯得很麻煩。爲了解決這種問題,Java就提供了數組供我們使用。
那麼數組到底是什麼呢?有什麼特點呢?通過上面的分析:我們可以得到如下兩句話:
數組是存儲多個變量(元素)的東西(容器)
這多個變量的數據類型要一致
數組概念
數組概念
數組是存儲同一種數據類型多個元素的集合。也可以看成是一個容器。
數組既可以存儲基本數據類型,也可以存儲引用數據類型。
數組的定義格式
格式1:數據類型[] 數組名;
格式2:數據類型 數組名[];
注意:這兩種定義做完了,數組中是沒有元素值的。
如何對數組的元素進行初始化呢?
數組的初始化
數組初始化概述:
Java中的數組必須先初始化,然後才能使用。
所謂初始化:就是爲數組中的數組元素分配內存空間,併爲每個數組元素賦值。
數組的初始化方式
動態初始化:初始化時只指定數組長度,由系統爲數組分配初始值。
靜態初始化:初始化時指定每個數組元素的初始值,由系統決定數組長度。
動態初始化:初始化時只指定數組長度,由系統爲數組分配初始值。
格式:數據類型[] 數組名 = new 數據類型[數組長度];
數組長度其實就是數組中元素的個數。
舉例:
int[] arr = new int[3];
解釋:定義了一個int類型的數組,這個數組中可以存放3個int類型的值。
Java中的內存分配
Java 程序在運行時,需要在內存中的分配空間。爲了提高運算效率,就對空間進行了不同區域的劃分,因爲每一片區域都有特定的處理數據方式和內存管理方式。
棧 存儲局部變量
堆 存儲new出來的東西
方法區 (面向對象部分講)
本地方法區 (和系統相關)
寄存器 (給CPU使用)
Java中數組的內存圖解
數組的初始化
靜態初始化:初始化時指定每個數組元素的初始值,由系統決定數組長度。
格式:
數據類型[] 數組名 = new 數據類型[]{元素1,元素2,…};
舉例:
int[] arr = new int[]{1,2,3};
解釋:定義了一個int類型的數組,這個數組中可以存放3個int類型的值,並且值分別是1,2,3。
其實這種寫法還有一個簡化的寫法
int[] arr = {1,2,3};
數組操作常見的兩個小問題
數組索引越界
ArrayIndexOutOfBoundsException
訪問到了數組中的不存在的索引時發生。
空指針異常
NullPointerException
數組引用沒有指向實體,卻在操作實體中的元素時
二維數組定義格式(一)
格式1
數據類型[][] 變量名 = new 數據類型[m][n];
m表示這個二維數組有多少個一維數組
n表示每一個一維數組的元素個數
舉例:
int[][] arr = new int[3][2];
定義了一個二維數組arr
這個二維數組有3個一維數組,名稱是arr[0],arr[1],arr[2]
每個一維數組有2個元素,可以通過arr[m][n]來獲取
表示獲取第m+1個一維數組的第n+1個元素
二維數組定義格式(二)
格式2
數據類型[][] 變量名 = new 數據類型[m][];
m表示這個二維數組有多少個一維數組
這一次沒有直接給出一維數組的元素個數,可以動態的給出。
舉例:
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3]
arr[2] = new int[1];
二維數組定義格式(三)
格式3
數據類型[][] 變量名 = new 數據類型[][]{{元素…},{元素…},{元素…}};
簡化版格式:
數據類型[][] 變量名 = {{元素…},{元素…},{元素…}};
舉例:
int[][] arr = {{1,2,3},{4,6},{6}};