程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java基礎學習第五天——方法與數組

Java基礎學習第五天——方法與數組

編輯:JAVA綜合教程

Java基礎學習第五天——方法與數組


文檔版本 開發工具 測試平台 工程名字 日期 作者 備注 V1.0       2016.02.24 lutianfei none

第三章Java基礎語法

方法

方法就是完成特定功能的代碼塊,即函數。

格式:

修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2…) {
  函數體;
  return 返回值;
    }
詳細解釋:
修飾符,目前就用public static,後詳解。 返回值類型:就是功能結果的數據類型。 方法名:符合命名規則即可,方便我們的調用。 參數:
實際參數:就是實際參與運算的。 形式參數:就是方法定義上的,用於接收實際參數的。 參數類型:就是參數的數據類型。 參數名:變量名 方法體語句:就是完成功能的代碼 return:結束方法的。 返回值:就是功能的結果,由return帶給調用者。

方法重載

方法重載概述
在同一個類中,允許存在一個以上的同名方法,只要它們的參數個數或者參數類型不同即可。

方法重載特點

返回值類型無關,只看方法名參數列表 在調用時,虛擬機通過參數列表的不同來區分同名方法

eg:

class FuncionTest{
    public static void main(String[] args){

        //Test1
        short b1 =3;
        short b2 =4;
        System.out.println("short:"+compare(b1,b2));

    }

//*******************************************************//
// Function :byte type
    public static boolean compare(byte a, byte b){
        System.out.println("byte type");
        return a==b;
    }

//-------------------------------------------------------//


//*******************************************************//
// Function :short type
    public static boolean compare(short a, short b){
        System.out.println("short type");
        return a==b;
    }

//-------------------------------------------------------//


//*******************************************************//
// Function :int type
    public static boolean compare(int a, int b){
        System.out.println("int type");
        return a==b;
    }

//-------------------------------------------------------//


//*******************************************************//
// Function :long type
    public static boolean compare(long a, long b){
        System.out.println("long type");
        return a==b;
    }

//-------------------------------------------------------//

 

數組

數組概念
數組是存儲同一種數據類型多個元素的集合。也可以看成是一個容器。 數組既可以存儲基本數據類型,也可以存儲引用數據類型。

數組的定義格式

格式1:數據類型[] 數組名; 格式2:數據類型 數組名[]; 注意:這兩種定義做完了,數組中是沒有元素值的。還需對數組的元素進行初始化。

eg:

A:int[] a; 定義一個int類型的數組a變量 B:int a[];定義一個int類型的a數組變量

注:

1:針對數組定義兩種格式,推薦使用第一種格式。因為第一種的可讀性更強。第二種早期的時候確實有很多人這樣用。不過,現在這樣用的人越來越少了。 2:作為Java的粉絲C#(Java的模仿者)就不再支持第二種語法格式了。越來越多的語言可能會拋棄第二種格式。

數組初始化概述:

Java中的數組必須先初始化,然後才能使用。 所謂初始化:就是為數組中的數組元素分配內存空間,並為每個數組元素賦值

數組的初始化方式

動態初始化:初始化時只指定數組長度,由系統為數組分配初始值靜態初始化:初始化時指定每個數組元素的初始值,由系統決定數組長度(用的更多)。

動態初始化:初始化時只指定數組長度,由系統為數組分配初始值。

格式:數據類型[] 數組名 = new 數據類型[數組長度]; 數組長度其實就是數組中元素的個數。 舉例:
int[] arr = new int[3]; 解釋:定義了一個int類型的數組,這個數組中可以存放3個int類型的值。new為數組分配內存空間。

靜態初始化:初始化時指定每個數組元素的初始值,由系統決定數組長度。

格式:
數據類型[] 數組名 = new 數據類型[]{元素1,元素2,…}; 舉例:
int[] arr = new int[]{1,2,3}; 解釋:定義了一個int類型的數組,這個數組中可以存放3個int類型的值,並且值分別是1,2,3。 簡化的寫法
int[] arr = {1,2,3}; 注意:不能同時進行動態初始化和靜態初始化。就是不能在給定數組長度的同時給出元素。

 

Java中的內存分配

Java 程序在運行時,需要在內存中的分配空間。為了提高運算效率,就對空間進行了不同區域的劃分,因為每一片區域都有特定的處理數據方式和內存管理方式。 存儲局部變量,使用完畢就消失。 存儲new出來的東西 方法區 (面向對象部分講) 本地方法區 (和系統相關)

寄存器 (給CPU使用)

局部變量

方法定義中或者方法聲明上的變量 使用完畢,立即消失

:new出來的東西,實體,對象。

a : 每一個實體都有首地址值 b : 每一個實體內的數據都有默認值
byte,short,int,long: 0 float,double: 0.0 char: ‘\u0000’ boolean: false 引用類型:null c : 使用完畢後,會被垃圾回收器空閒的時候回收。

圖解存儲空間
\

 

圖解數組內存三個數組
/*
需求:
1、定義第一個數組,定義完畢後,給數組元素賦值。賦值完畢後,在輸出數組名稱和元素。
2、定義第二個數組,定義完畢後,給數組元素賦值。賦值完畢後,在輸出數組名稱和元素。
3、定義第三個數組,把第一個數組的地址值給它。(注意類型一致),通過第三個數組的名稱去把元素重新賦值。
4、再次輸出第一個數組名稱和元素。
*/

class ArrayDemo{
    public static void main(String[] args){
        int[] arr = new int[3];
        arr[0] = 88;
        arr[1] = 33;
        arr[2] = 66;
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        int[] arr2 = new int[3];
        arr2[0] = 22;
        arr2[1] = 44;
        arr2[2] = 55;
        System.out.println(arr2);
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);

        //第三個數組
        int[] arr3 = arr;
        arr3[0] = 100;
        arr3[1] = 200;
        System.out.println(arr);
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);            
    }

}

\

 

數組操作常見的兩個小問題

數組索引越界異常
ArrayIndexOutOfBoundsException 原因:訪問到了數組中的不存在的索引時發生。

空指針異常

NullPointerException 原因:數組引用沒有指向實體,卻在操作實體中的元素時(數組已經不在堆棧內存)。

Eg:

int[] arr = {1,2,3};
System.out.println(arr[3]); //報錯:ArrayIndexOutOfBoundsException

arr = null;
System.out.println(arr[0]); //報錯:NullPointerException

 

數組練習

數組遍歷(依次輸出數組中的每一個元素)
數組屬性length,可以得到數組長度。
int[] arr2 = {1,4,52,4,5,6,3,2,8,5,3,1,6,7,8,3,2};
//length 屬性
for (int x=0;x
數組獲取最值(獲取數組中的最大值最小值)
/*
分析:
A:從數組中人員找一個作為參照物(一般第一個),默認他是最大的。
B:遍歷其他元素,一次獲取和參照我進行對比。
*/

class ArrayDemo{
    public static void main(String[] args){

        int[] arr2 = {1,4,52,4,5,6,44,2,66,323,3,22,6,23,8,654,2};
        int max = arr2[0];
        int min = arr2[0];
        for (int x=1;x arr2[x]) ? max : arr2[x];
            min = (min < arr2[x]) ? min : arr2[x];
            // System.out.println(arr2[x]);
        }
        System.out.println("Max is :" +max);
        System.out.println("Min is :" +min);
    }
}

 

數組元素逆序 (就是把元素對調)
/*
分析:
A:將arr[0]與arr[length-1]交換
B:將arr[1]與arr[length-2]交換
...
C:只要做到arr.length/2即可
*/


class ArrayDemo{
    public static void main(String[] args){

        int[] arr = {1,4,52,4,5,6,44,2,66,323,3,22,6,23,8,654,2};

        for(int i=0;i

 

數組查表法(根據鍵盤錄入索引,查找對應星期)
import java.util.Scanner;

class ArrayDemo{
    public static void main(String[] args){

        String[] strArr = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};

        Scanner sc = new Scanner(System.in);

        System.out.println("Please input a number(0~6):");

        int index = sc.nextInt();

        System.out.println(strArr[index]);
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved