部分代碼轉(zhuǎn)載至馬士兵JAVASE資料。
【1】什么是方法最楷?
方法(method)就是一段用來完成特定功能的代碼片段整份,類似于其它語(yǔ)言的函數(shù)(function)。
方法用于定義該類或該類的實(shí)例的行為特征和功能實(shí)現(xiàn)籽孙。 方法是類和對(duì)象行為特征的抽象烈评。方法很類似于面向過程中的函數(shù)。面向過程中犯建,函數(shù)是最基本單位讲冠,整個(gè)程序由一個(gè)個(gè)函數(shù)調(diào)用組成。面向?qū)ο笾惺释撸麄€(gè)程序的基本單位是類竿开,方法是從屬于類和對(duì)象的谱仪。
【2】方法聲明格式:
[修飾符1? 修飾符2? …]? 返回值類型? ? 方法名(形式參數(shù)列表){
? ? ? ? Java語(yǔ)句;… … …
}
【3】方法的調(diào)用方式:
對(duì)象名.方法名(實(shí)參列表)
【4】方法的詳細(xì)說明
形式參數(shù):在方法聲明時(shí)用于接收外界傳入的數(shù)據(jù)否彩。
實(shí)參:調(diào)用方法時(shí)實(shí)際傳給方法的數(shù)據(jù)疯攒。
返回值:方法在執(zhí)行完畢后返還給調(diào)用它的環(huán)境的數(shù)據(jù)。
返回值類型:事先約定的返回值的數(shù)據(jù)類型列荔,如無返回值敬尺,必須顯示指定為為void。
【5】總結(jié):
1.方法:對(duì)特定的功能進(jìn)行提取贴浙,形成一個(gè)代碼片段砂吞,這個(gè)代碼片段就是我們所說的方法
2.方法和方法是并列的關(guān)系,所以我們定義的方法不能寫到main方法中
3.方法的定義--》格式:
? ? ? ? 修飾符 方法返回值類型 方法名(形參列表){
? ? ? ? ? ? ? ? 方法體;
? ? ? ? ? ? ? ? return 方法返回值;
? ? ? ? }
4.方法的作用:
提高代碼的復(fù)用性
5.總結(jié)方法定義的格式:
1) 修飾符: 暫時(shí)使用public static --->面向?qū)ο笠徽轮v解
2) 方法返回值類型? : 方法的返回值對(duì)應(yīng)的數(shù)據(jù)類型
? ?數(shù)據(jù)類型: 可以是基本數(shù)據(jù)類型(byte,short,int,long,float,double,char,boolean) 也可以是引用數(shù)據(jù)類型?
3) 方法名 :見名知意悬而,首字母小寫呜舒,其余遵循駝峰命名,? eg: addNum ,一般盡量使用英文來命名??
4) 形參列表 :方法定義的時(shí)候需要的形式參數(shù) :? int? num1, int num2 -->相當(dāng)于告訴方法的調(diào)用者:需要傳入幾個(gè)參數(shù)笨奠,需要傳入的參數(shù)的類型
? ? 實(shí)際參數(shù):方法調(diào)用的時(shí)候傳入的具體的參數(shù):? 10,20? -->根據(jù)形式參數(shù)的需要傳入的
5)方法體:具體的業(yè)務(wù)邏輯代碼
6) return 方法返回值;
方法如果有返回值的話: return+方法返回值袭蝗,將返回值返回到方法的調(diào)用處
方法沒有返回值的話:return可以省略不寫了,并且方法的返回值類型為:void
什么時(shí)候有返回值般婆,什么時(shí)候沒有返回值到腥? 看心情--》看需求
6.方法的定義需要注意什么?
1)形參列表要怎么寫:定義幾個(gè)參數(shù)蔚袍,分別是什么類型的? ---》不確定因素我們會(huì)當(dāng)做方法的形參
2)? 方法到底是否需要返回值 乡范,如果需要的話,返回值的類型是什么
7.方法的調(diào)用需要注意什么啤咽?
1)實(shí)際參數(shù)要怎么傳入:傳入幾個(gè)參數(shù)晋辆,傳入什么類型的
2) 方法是否有返回值需要接受
數(shù)組
數(shù)組的定義:
數(shù)組是相同類型數(shù)據(jù)的有序集合。數(shù)組描述的是相同類型的若干個(gè)數(shù)據(jù)宇整,按照一定的先后次序排列組合而成瓶佳。其中,每一個(gè)數(shù)據(jù)稱作一個(gè)元素鳞青,每個(gè)元素可以通過一個(gè)索引(下標(biāo))來訪問它們霸饲。
數(shù)組的四個(gè)基本特點(diǎn):
1.長(zhǎng)度是確定的。數(shù)組一旦被創(chuàng)建臂拓,它的大小就是不可以改變的厚脉。
2.其元素的類型必須是相同類型,不允許出現(xiàn)混合類型胶惰。
3.數(shù)組類型可以是任何數(shù)據(jù)類型傻工,包括基本類型和引用類型。
4.數(shù)組有索引的:索引從0開始,到 數(shù)組.length-1 結(jié)束?
5.數(shù)組變量屬于引用類型中捆,數(shù)組也是對(duì)象威鹿。
PS:數(shù)組變量屬于引用類型,數(shù)組也是對(duì)象轨香,數(shù)組中的每個(gè)元素相當(dāng)于該對(duì)象的成員變量。數(shù)組本身就是對(duì)象幼东,Java中對(duì)象是在堆中的臂容,因此數(shù)組無論保存原始類型還是其他對(duì)象類型,數(shù)組對(duì)象本身是在堆中存儲(chǔ)的根蟹。
數(shù)組的初始化方式總共有三種:靜態(tài)初始化脓杉、動(dòng)態(tài)初始化、默認(rèn)初始化简逮。
靜態(tài)初始化
除了用new關(guān)鍵字來產(chǎn)生數(shù)組以外球散,還可以直接在定義數(shù)組的同時(shí)就為數(shù)組元素分配空間并賦值。
eg:
int[] arr = {12,23,45};
int[] arr = new int[]{12,23,45};
注意:
1.new int[3]{12,23,45};-->錯(cuò)誤
2.int[] arr ;
? ?arr = {12,23,45};? --->錯(cuò)誤
動(dòng)態(tài)初始化
數(shù)組定義與為數(shù)組元素分配空間并賦值的操作分開進(jìn)行散庶。
eg:
int[] arr ;
arr = new int[3]
arr[0] = 12;
arr[1] = 23;
arr[2] = 45;
默認(rèn)初始化
數(shù)組是引用類型蕉堰,它的元素相當(dāng)于類的實(shí)例變量,因此數(shù)組一經(jīng)分配空間悲龟,其中的每個(gè)元素也被按照實(shí)例變量同樣的方式被隱式初始化屋讶。
int[] arr = new int[3];? ?---> 數(shù)組有默認(rèn)的初始化值
二維數(shù)組的四種遍歷方式:
public class TestArray15{
? ? ? ? public static void main(String[] args){
? ? ? ? ? ? ? ? //定義一個(gè)二維數(shù)組:
? ? ? ? ? ? ? ? int[][] arr = new int[3][];//本質(zhì)上定義了一個(gè)一維數(shù)組,長(zhǎng)度為3
? ? ? ? ? ? ? ? int[] a1 = {1,2,3};
? ? ? ? ? ? ? ? arr[0] = a1;
? ? ? ? ? ? ? ? arr[1] = new int[]{4,5,6,7};
? ? ? ? ? ? ? ? arr[2] = new int[]{9,10};
? ? ? ? ? ? ? ? //讀取6這個(gè)元素:
? ? ? ? ? ? ? ? //System.out.println(arr[1][2]);
? ? ? ? ? ? ? ? //對(duì)二維數(shù)組遍歷:
? ? ? ? ? ? ? ? //方式1:外層普通for循環(huán)+內(nèi)層普通for循環(huán):
? ? ? ? ? ? ? ? for(int i=0;i<arr.length;i++){
? ? ? ? ? ? ? ? ? ? ? ? for(int j=0;j<arr[i].length;j++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.print(arr[i][j]+"\t");
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? System.out.println();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? //方式2:外層普通for循環(huán)+內(nèi)層增強(qiáng)for循環(huán):
? ? ? ? ? ? ? ? for(int i=0;i<arr.length;i++){
? ? ? ? ? ? ? ? ? ? ? ? for(int num:arr[i]){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.print(num+"\t");
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? System.out.println();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? //方式3:外層增強(qiáng)for循環(huán)+內(nèi)層增強(qiáng)for循環(huán):
? ? ? ? ? ? ? ? for(int[] a:arr){
? ? ? ? ? ? ? ? ? ? ? ? for(int num:a){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.print(num+"\t");
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? System.out.println();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? //方式4:外層增強(qiáng)for循環(huán)+內(nèi)層普通for循環(huán):
? ? ? ? ? ? ? ? for(int[] a:arr){
? ? ? ? ? ? ? ? ? ? ? ? for(int i=0;i<a.length;i++){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? System.out.print(a[i]+"\t");
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? System.out.println();
? ? ? ? ? ? ? ? }
? ? ? ? }
}