函數:
定義
函數的作用: 爲了提高功能代碼的複用性。
函數的定義格式:
修飾符 返回值類型 變量名(形式參數){
函數體
}
函數的特點:
1. 函數是把一個功能的代碼 封裝起來以達到提高功能 代碼的複用性。
2. 函數定義好之後,需要調用才能執行的。
3. 如果一個函數沒有返回值類型,那麼就使用void關鍵字表示。
return 關鍵字
作用:
1. 返回數據給函數的調用者。
2. 函數一旦執行到了return關鍵字,那麼該函數馬上結束。 (能結束一個函數)
注意:一個函數的返回值類型 是void,那麼也可以出現return關鍵字,但是return關鍵字的後面不能有數據。
break關鍵字與return關鍵字的區別:
1.break關鍵字是結束一個循環。
2. return關鍵字是結束一個函數。
函數的重載
函數的重載:在一個類中出現兩個或者兩個以上的同名函數,這個稱作爲函數的重載。
函數重載的作用: 同一個函數名可以出現了不同的函數,以應對不同個數或者不同數據類型的參數。
函數重載的要求:
1. 函數名一致。
2. 形參列表不一致。(形式參數的個數或者是對應的數據類型不一致)
3. 與函數的返回值類型是無關的。
數組
特點
數組的特點:
1. 數組只能存儲同一種 數據類型的數據。
2. 數組是會給存儲到數組中 的元素分配一個索引值的,索引值從0開始,最大的索引值是length-1;
3. 數組一旦初始化,長度固定。
4. 數組中的元素與元素之間的內存地址是連續的。
一維數組
數組是存儲同一種數據類型數據的集合容器。
數組的定義格式:
1.動態初始化:數據類型[] 變量名 = new 數據類型[長度];
分析數組:
左邊: int[] arr 聲明瞭一個int類型的的數組變量,變量名爲arr。
int : 表示該數組容器只能存儲int類型的數據。
[] : 這是一個數組類型。
arr : 變量名.
右邊:new int[50]; 創建了一個長度爲50的int類型數組對象。
new : 創建數組對象的關鍵字。
int: 表示該數組對象只能存儲int類型數據。
[]: 表示是數組類型。
50 : 該數組最多能存儲50個數據。數組的容量。
2.靜態初始化: 數據類型[] 變量名 = {元素1,元素2…};
數組的好處: 對分配到數組對象中每一個數據都分配一個編號(索引值、角標、下標),索引值的範圍是從0開始,最大是: 數組長度-1.
數組中最常見的問題:
1. NullPointerException 空指針異常
原因: 引用類型變量沒有指向任何對象,而訪問了對象的屬性或者是調用了對象的方法。
2. ArrayIndexOutOfBoundsException 索引值越界。
原因:訪問了不存在的索引值。
數組的排序
public class SortArr {
public static void main(String[] args) {
int[] arr = {11,1,9,0,12,34,43,23};
// int[] newArr = selectionSort(arr);
// int[] newArr = bubbleSort(arr);
// for (int value:newArr) {
// System.out.println(value);
// }
Arrays.sort(arr);
int index = binarySearch(arr,23);
System.out.println(index);
}
/**
* 選擇排序
*
* @param arr
* @return
*/
public static int[] selectionSort(int[] arr){
for (int i = 0; i < arr.length; i++){
for (int j = i+1; j < arr.length; j++){
if ( arr[i] < arr[j] ){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
/**
* 冒泡排序
*
* @param arr
* @return
*/
public static int[] bubbleSort(int[] arr){
for (int i = 0; i < arr.length-1; i++){
for (int j = 0; j < arr.length-1-i; j++){
if ( arr[j] < arr[j+1] ){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
/**
* 二分查找法
*
* @param arr
* @param value
* @return
*/
public static int binarySearch(int[] arr, int value){
int start = 0;
int end = arr.length-1;
while(start <= end){
int middleIndex = (start+end)/2;
if (value>arr[middleIndex]){
start = middleIndex+1;
}else if(value<arr[middleIndex]) {
end = middleIndex-1;
}else {
return middleIndex;
}
}
return -1;
}
}
二維數組
定義
二維數組 的定義格式:
數據類型[][] 變量名 = new 數據類型[長度1][長度2];
二維數組 的初始化方式:
動態初始化:
數據類型[][] 變量名 = new 數據類型[長度1][長度2];
靜態初始化:
數據類型[][] 變量名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...} ..}
class Demo15{
public static void main(String[] args)
{
//定義了一個二維數組
int[][] arr = new int[3][4];
arr[1][1] = 100;
/*
System.out.println("二維數組的長度:"+ arr.length); // 3
System.out.println("二維數組的長度:"+ arr[1].length); //
*/
System.out.println("數組的元素:"+ arr[1][1]);
}
}