程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 函數、內存、一維數組、二維數組【4】,維數二維數組

函數、內存、一維數組、二維數組【4】,維數二維數組

編輯:JAVA綜合教程

函數、內存、一維數組、二維數組【4】,維數二維數組


本文原創作者:pipi-changing

本文原創出處:http://www.cnblogs.com/pipi-changing/

    

本文版權歸作者和博客園共有,未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接 ,否則保留追究法律責任的權利。

 

 

函數的定義


 

 什麼是函數?

•函數就是定義在類中的具有特定功能的一段獨立小程序。   •函數也稱為方法。   函數的格式:   •修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,...)

  {

  執行語句;

  return 返回值;

  }

 

  返回值類型:函數運行後的結果的數據類型。

  參數類型:是形式參數的數據類型。

  形式參數:是一個變量,用於存儲調用函數時傳遞給函數的實際參數。

  實際參數:傳遞給形式參數的具體數值。

  return:用於結束函數。

  返回值:該函數運算後的結果,該結果會返回給調用者。

 

 函數的特點


 

定義函數可以將功能代碼進行封裝

 

便於對該功能進行復用

 

函數只有被調用才會被執行

 

函數的出現提高了代碼的復用性

 

對於函數沒有具體返回值的情況,返回值類型用關鍵字void表示,那麼該函數中的return語句如果在最後一行可以省略不寫。

 

注意:

 

•函數中只能調用函數,不可以在函數內部定義函數。

 

•定義函數時,函數的結果應該返回給調用者,交由調用者處理。

 

 

 函數的應用


 

兩個明確 •明確要定義的功能最後的結果是什麼?   •明確在定義該功能的過程中,是否需要未知內容參與運算   示例:   •需求:定義一個功能,可以實現兩個整數的加法運算。   •分析:   •該功能的運算結果是什麼?兩個數的和,也是一個整數(int)   •在實現該功能的過程中是否有未知內容參與運算?加數和被加數是不確定的。(兩個參數int,int)   •代碼:

  int  getSum(int x,int y)

  {

  return x+y;

  }

 

 函數的重載(overload)


 

重載的概念

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

重載的特點:

與返回值類型無關,只看參數列表。

重載的好處:

方便於閱讀,優化了程序設計。

重載示例:

//返回兩個整數的和

  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;}

 

函數的功能一樣,僅僅是參與運算的未知內容不同時,

可以定義多函數,卻使用統一函數名稱,這樣方便閱讀。

在調用時,虛擬機通過參數列表的不同來區分同名函數。

 

 數組


 

 數組的定義

概念

同一種類型數據的集合。其實數組就是一個容器。

數組的好處

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

格式1:

元素類型[]  數組名 = new 元素類型[元素個數或數組長度];

示例:int[] arr = new int[5];

格式2:

元素類型[] 數組名 = new 元素類型[]{元素,元素,……};

int[] arr = new int[]{3,5,1,7};

int[] arr = {3,5,1,7};


 

數組內存結構

 


 

 

內存結構

 

Java程序在運行時,需要在內存中的分配空間。為了提高運算效率,有對空間進行了不同區域的劃分,因

為每一片區域都有特定的處理數據方式和內存管理方式。

棧內存

  用於存儲局部變量,當數據使用完,所占空間會自動釋放。

堆內存

  數組和對象,通過new建立的實例都存放在堆內存中。     每一個實體都有內存地址值     實體中的變量都有默認初始化值     實體不在被使用,會在不確定的時間內被垃圾回收器回收

方法區,本地方法區,寄存器

 


 

數組操作常見問題

 

  數組腳標越界異常(ArrayIndexOutOfBoundsException)

int[] arr = new int[2];

System.out.println(arr[3]);

訪問到了數組中的不存在的腳標時發生。

  空指針異常(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;

 

注意特殊寫法情況:int[] x,y[]; x是一維數組,y是二維數組。

 

 

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