2020-03-27

day09——數(shù)組

一、上節(jié)課回顧

1、函數(shù)、方法

1、概念:一段具有特定功能的代碼??梢员欢啻握{(diào)用并執(zhí)行。

? ? 可復用

2、作用:A:避免重復的代碼,增強程序的可讀性。B:增強程序的可維護性。

3、使用:

? ? step1:先聲明(定義),方法中的代碼是不執(zhí)行的。

? ? step2:調(diào)用這個方法。才會執(zhí)行這個方法中的代碼。調(diào)用幾次就執(zhí)行幾次。

4、位置:類里,其他的方法外。

5、語法:

? ? 聲明方法的語法:

[修飾符1,修飾符2...]返回值類型/void方法名(形式參數(shù)列表){

? ? 方法體;

? ? }

? ? publicstaticvoidmain(String[]args){}

?

? ? 調(diào)用方法的語法:

方法名(實際參數(shù));

注意點:實參一定嚴格匹配形參:按照順序一一匹配,順序,個數(shù),類型


6、參數(shù):當方法執(zhí)行的時候,需要接受外部的數(shù)據(jù)。

形式參數(shù):方法聲明的時候,用于接受外部傳入的數(shù)據(jù)。

實際參數(shù):調(diào)用方法的時候,向方法中的形式參數(shù)進行賦值,所傳入的具體的數(shù)據(jù)。


調(diào)用方法的時候:實參的數(shù)值要傳遞給形參,叫做傳參。(參數(shù)傳遞)

結(jié)論:方法中哪些數(shù)據(jù)不確定,就聲明為參數(shù),幾個數(shù)據(jù)不確定,就聲明幾個,多個參數(shù)使用逗號分隔開。


7、返回值:就是方法執(zhí)行結(jié)束后,返回給調(diào)用處的結(jié)果數(shù)據(jù)。

一個方法最多只能返回一個數(shù)據(jù),可以沒有,聲明方法的時候就寫void。

一個方法如果聲明了有返回值(非void),那么在方法中必須使用return語句將結(jié)果返回。


8、return語句的作用

A:將結(jié)果返回給調(diào)用處。

B:同時結(jié)束了該方法的執(zhí)行。


9、return語句的注意點:

A:如果一個方法聲明了有返回值,那么方法中必須使用return返回結(jié)果。

B:如果一個方法聲明了有返回值,那么return后的數(shù)據(jù)類型,必須和聲明的一致。如果聲明上沒有返回值,就是void,那么方法中可以使用return語句,但是不要返回數(shù)值,只是用于結(jié)束方法。

C:一個方法如果聲明了有返回值,假如方法中有分支語句,循環(huán)語句,要保證無論執(zhí)行那個分支,都要有return可以被執(zhí)行到。

D:return后面不要再寫語句:無法到達的語句。


10、遞歸方法:

概念:一個方法自己調(diào)用自己。

注意點:

? ? A:要有出口。

? ? B:要逐漸的向出口靠近。

11、總結(jié)

A:方法的三要素:返回值,方法名,參數(shù)列表。

B:返回值?一個方法執(zhí)行后的返回給調(diào)用處的結(jié)果。類型

C:參數(shù)?一個方法中哪個數(shù)據(jù)不確定,就設計為參數(shù)。

D:方法如何實現(xiàn)?根據(jù)需求分析,一個方法往往只完成一件事。

E:方法也是一種封裝。

class類名{

? ? 方法1的聲明(){}


main(){}//入口


方法2的聲明(){}


}

二、本節(jié)課內(nèi)容

2.1、遞歸函數(shù)

遞歸:英文單詞:Recursion

函數(shù)/方法,調(diào)用?

方法在有需要的位置調(diào)用即可。

一個方法中可以調(diào)用另一個方法。

一個方法中也可以自己調(diào)用自己。遞歸方法。

遞歸算法:

方法自己調(diào)用自己

要有出口,逐漸的向出口靠近

可能出現(xiàn)的問題:Exception in thread "main" java.lang.StackOverflowError,棧空間溢出異常。

2.2、數(shù)組

2.2.1 為什么使用數(shù)組

如果說程序中,需要存儲大量的相同類型的一組數(shù)據(jù),如果直接使用變量來進行存儲,每個變量只能存儲一個值,就需要大量的變量。

1、代碼過于臃腫

2、程序的可讀性差

3、數(shù)據(jù)維護較差

2.2.2 數(shù)組的概念

數(shù)組的概念:

就是一組相同數(shù)據(jù)類型的數(shù)據(jù)。內(nèi)存上是開辟的連續(xù)的內(nèi)存空間。

2.2.3 數(shù)組的特點?

1、定長。容量固定。數(shù)組一旦創(chuàng)建后,那么長度不能更改。(容量,長度,都是指存儲的數(shù)量)

2、存儲的數(shù)據(jù)類型必須都一致。

3、在內(nèi)存中空間連續(xù)挨個。

4、數(shù)組是引用類型的數(shù)據(jù),存在棧和堆的地址引用關(guān)系。

?

Java中:兩大數(shù)據(jù)類型

? ? 基本:4類8種

? ? 引用:數(shù)組,對象,集合。。。。

2.2.4 數(shù)組的使用

step1:先創(chuàng)建數(shù)組

step2:使用數(shù)組:存儲數(shù)據(jù),訪問數(shù)據(jù)。

2.2.5 數(shù)組的語法

創(chuàng)建數(shù)組的語法:

? ? 數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[長度、容量、個數(shù)];

? ? 數(shù)據(jù)類型 數(shù)組名[] = new 數(shù)據(jù)類型[長度];//也可以


使用的語法:

? ? 數(shù)組名[index],操作數(shù)組

? ? index:因為一個數(shù)組存儲了多個數(shù)據(jù)(也叫元素),每個元素都有一個下標,也叫索引,index。理解起來就是給每個數(shù)據(jù)排個編號,固定從0開始,0,1,2,3,4.。。。到長度減1。

? ? 數(shù)組的下標不能超出這個范圍。否則就會下標越界:java.lang.ArrayIndexOutOfBoundsException

2.2.6 內(nèi)存分析(擴展)

內(nèi)存:存儲數(shù)據(jù)

A:棧,存放的是基本數(shù)據(jù)類型的變量,以及引用類型變量的引用。

? ? 特點:函數(shù)中的變量所占用的空間,執(zhí)行之后就會銷毀。

B:堆,存放的是new出來的東西。

? ? 特點:執(zhí)行之后,堆里存儲的內(nèi)容(對象等),會被標記為垃圾,但是不會立即被銷毀,而是等待系統(tǒng)的垃圾回收機制來回收(GC)。

? ? JVM,GC(Grabage Collection)


2.2.7 使用循環(huán)遍歷數(shù)組

1、遍歷:依次訪問數(shù)組中每個元素。可以賦值,可以取值。

2、因為操作數(shù)組,就是數(shù)組名字配合下標,而下標固定都是從0開始,到長度減1。

for(inti=0;i<arr2.length;i++){

? ? System.out.println(arr2[i]);

}

2.2.8 數(shù)組的長度

獲取數(shù)組的長度:length,數(shù)組的一個屬性。

數(shù)組名.length--->獲取這個數(shù)組的長度。

三、總結(jié)

1、遞歸方法:了解

一個方法自己調(diào)用自己,

遞歸方法要有出口,逐漸的向出口靠近。

2、數(shù)組:

概念:內(nèi)存中連續(xù)的空間。存儲一組相同的數(shù)據(jù)類型。

使用:

語法:

內(nèi)存分析:

遍歷:

長度:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容