java基礎學習5(函數,函數重載與數組)

函數:

定義

函數的作用: 爲了提高功能代碼的複用性。

函數的定義格式:

修飾符  返回值類型  變量名(形式參數){
	函數體
}

函數的特點:
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]);
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章