java文法二

來源:互聯網
上載者:User

 一、函數
1  什麼是函數?
• 函數就是定義在類中的具有特定功能的一段獨立小程式。

• 函數也稱為方法。

 
函數的格式: • 修飾符 傳回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,)
{
執行語句;
return 傳回值;
}

  1. 傳回值類型:函數運行後的結果的資料類型。
  2. 參數類型:是形式參數的資料類型。
  3. 形式參數:是一個變數,用於儲存調用函數時傳遞給函數的實際參數。
  4. 實際參數:傳遞給形式參數的具體數值。
  5. return:用於結束函數。
  6. 傳回值:該值會返回給調用者。

2 函數的特點

  1.  定義函數可以將功能代碼進行封裝
  2. 便於對該功能進行複用
  3. 函數只有被調用才會被執行
  4. 函數的出現提高了代碼的複用性
  5. 對於函數沒有具體傳回值的情況,傳回值類型用關鍵
  6. 字void表示,那麼該函數中的return語句如果在最後一
  7. 行可以省略不寫。

 
注意:
• 函數中只能調用函數,不可以在函數內部定義函數。
• 定義函數時,函數的結果應該返回給調用者,交由調用者處
理。

3 函數的應用
 
兩個明確
•  明確要定義的功能最後的結果是什嗎?
•  明確在定義該功能的過程中,是否需要未知內容參與運算

 
樣本:
•  需求:定義一個功能,可以實現兩個整數的加法運算。
•  分析:
• 該功能的運算結果是什嗎?兩個數的和,也是一個整數(int)
• 在實現該功能的過程中是否有未知內容參與運算?加數和被加數是不確
定的。(兩個參數int,int)
• 代碼:
int  getSum(int x,int y)
{
return x+y;
}

4 函數的重載
1、重載的概念
在同一個類中,允許存在一個以上的同名函數,只要它們的參數個數或者參數類型不同即可。

2、重載的特點:
與傳回值類型無關,只看參數列表。

3、重載的好處:
方便於閱讀,最佳化了程式設計。

4、重載樣本:
//返回兩個整數的和
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;}

二 數組、

1 數組的定義
概念
同一種類型資料的集合。其實數組就是一個容器。

數組的好處
可以自動給數組中的元素從0開始編號,方便操作這些元素。

格式1:
元素類型[] 數組名= new 元素類型[元素個數或數組長度];
樣本:int[] arr = new int[5];

格式2:
元素類型[] 數組名
 
= new 元素類型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};

2 記憶體結構
Java程式在運行時,需要在記憶體中的分配空間。為了提高運算效率,有對空間進行了不同地區的劃分,因為每一片地區都有特定的處理資料方式和記憶體管理方式。

棧記憶體:用於儲存局部變數,當資料使用完,所佔空間會自動釋放。

堆記憶體:

  •  數組和對象,通過new建立的執行個體都存放在堆記憶體中。
  •  每一個實體都有記憶體位址值
  •  實體中的變數都有預設初始化值
  •  實體不在被使用,會在不確定的時間內被記憶體回收行程回收

3 數組操作常見問題
數組腳標越界異常(ArrayIndexOutOfBoundsException)

int[] arr = new int[2];
System.out.println(arr[3]);
訪問到了數組中的不存在的腳標時發生。

null 指標異常(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;

練習:擷取arr數組中所有元素的和。使用for的嵌套迴圈即可。
注意特殊寫法情況:int[] x,y[]; x是一維數組,y是二維數組。
            //遍曆二維數組
for (int x=0;x<arr.length;x++ )
{
for (int y=0;y<arr[x].length ;y++ )
{
System.out.print(arr[x][y]+",");
}
System.out.println();
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.