- 相關(guān)推薦
Java語(yǔ)法基礎(chǔ)中函數(shù)的使用說明
函數(shù)就是定義在類中的具有特定功能的一段獨(dú)立小程序,函數(shù)也稱為方法。以下是百分網(wǎng)小編搜索整理的關(guān)于Java語(yǔ)法基礎(chǔ)中函數(shù)的使用說明,供參考借鑒,希望對(duì)大家有所幫助!想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
一、函數(shù)的定義及特點(diǎn)
1) 什么是函數(shù)?
函數(shù)就是定義在類中的具有特定功能的一段獨(dú)立小程序,函數(shù)也稱為方法
2)Java中函數(shù)的格式:
修飾符 返回值類型函數(shù)名(參數(shù)類型 形式參數(shù)1,參數(shù)類型 形式參數(shù)2,。。)
。 執(zhí)行語(yǔ)句;
return 返回值;
。
返回值類型:函數(shù)運(yùn)行后的結(jié)果的數(shù)據(jù)類型
參數(shù)類型:是形式參數(shù)的數(shù)據(jù)類型
形式參數(shù):是一個(gè)變量,用于存儲(chǔ)調(diào)用函數(shù)時(shí)傳遞給函數(shù)的實(shí)際參數(shù)
實(shí)際參數(shù):傳遞給形式參數(shù)的具體數(shù)值
return:用于結(jié)束函數(shù)
返回值:該值會(huì)返回給調(diào)用者
3) 函數(shù)的特點(diǎn)
a) 定義函數(shù)可以將功能代碼進(jìn)行封裝
b) 便于對(duì)該功能進(jìn)行復(fù)用
c) 函數(shù)只有被調(diào)用才會(huì)被執(zhí)行
d) 函數(shù)的出現(xiàn)提高了代碼的復(fù)用性
e) 對(duì)于函數(shù)沒有具體返回值的情況,返回值類型用關(guān)鍵字void表示,那么該函數(shù)中的return語(yǔ)句如果在最后一行可以省略不寫,系統(tǒng)會(huì)幫你自動(dòng)加上。
注:
a) 函數(shù)中只能調(diào)用函數(shù),不可以在函數(shù)內(nèi)部定義函數(shù)。
b) 定義函數(shù)時(shí),函數(shù)的結(jié)果應(yīng)該返回給調(diào)用者,交由調(diào)用者處理。
c) 當(dāng)函數(shù)運(yùn)算后,沒有具體的返回值時(shí),這是返回值類型用一個(gè)特殊的關(guān)鍵字來標(biāo)識(shí)該關(guān)鍵字就是void,void:代表的是函數(shù)沒有具體返回值的情況。
d) 當(dāng)函數(shù)的返回值類型是void時(shí),函數(shù)中的return語(yǔ)句可以省略不寫。
4) 如何定義一個(gè)函數(shù)?
函數(shù)其實(shí)就是一個(gè)功能,定義函數(shù)就是實(shí)現(xiàn)功能,通過兩個(gè)明確來完成:
1)、明確該功能的運(yùn)算完的結(jié)果,其實(shí)是在明確這個(gè)函數(shù)的返回值類型。
2)、在實(shí)現(xiàn)該功能的過程中是否有未知內(nèi)容參與了運(yùn)算,其實(shí)就是在明確這個(gè)函數(shù)的參數(shù)列表(參數(shù)類型&參數(shù)個(gè)數(shù))。
5) 函數(shù)的作用:
1)、用于定義功能。
2)、用于封裝代碼提高代碼的復(fù)用性。
注意:函數(shù)中只能調(diào)用函數(shù),不能定義函數(shù)。
6) 主函數(shù):
1)、保證該類的獨(dú)立運(yùn)行。
2)、因?yàn)樗浅绦虻娜肟凇?/p>
3)、因?yàn)樗诒籮vm調(diào)用。
7) 函數(shù)定義名稱是為什么呢?
答:1)、為了對(duì)該功能進(jìn)行標(biāo)示,方便于調(diào)用。
2)、為了通過名稱就可以明確函數(shù)的功能,為了增加代碼的閱讀性。
二、函數(shù)的應(yīng)用
1) 兩個(gè)明確
a) 明確要定義的功能最后的結(jié)果是什么?
b) 明確在定義該功能的過程中,是否需要未知內(nèi)容參與運(yùn)算
2) 示例:
舉例1:
代碼如下:
class FunctionDemo
{
public static void main(String[] args)
{
int x = 4;
System.out.println(x*3+5);
x = 6;
System.out.println(x*3+5);
int y = 4*3+5;
int z = 6*3+5;
System.out.println(y);
System.out.println(z);
}
}
發(fā)現(xiàn)以上的運(yùn)算,因?yàn)楂@取不同數(shù)據(jù)的運(yùn)算結(jié)果,代碼出現(xiàn)了重復(fù)。
為了提高代碼的復(fù)用性。對(duì)代碼進(jìn)行抽取。將這個(gè)部分定義成一個(gè)獨(dú)立的功能。方便與日后使用。
java中對(duì)功能的定義是通過函數(shù)的形式來體現(xiàn)的。
明確功能:需要定義功能,完成一個(gè)整數(shù)的*3+5的運(yùn)算,
1,先明確函數(shù)定義的格式。
/*
修飾符返回值類型函數(shù)名(參數(shù)類型形式參數(shù)1,參數(shù)類型形式參數(shù)2,)
{
執(zhí)行語(yǔ)句;
return 返回值;
}
代碼如下:
class FunctionDemo
{
public static void getResult(int num)
{
System.out.println(num * 3 + 5);
return;//可以省略
}
public static void main(String[] args)
{
getResult(5);
}
}
對(duì)上述關(guān)于return是否省略這一小小知識(shí)點(diǎn)的總結(jié):
當(dāng)函數(shù)運(yùn)算后,沒有具體的返回值時(shí),這是返回值類型用一個(gè)特殊的關(guān)鍵字來標(biāo)識(shí)。
該關(guān)鍵字就是void。void:代表的是函數(shù)沒有具體返回值的情況。
當(dāng)函數(shù)的返回值類型是void時(shí),函數(shù)中的return語(yǔ)句可以省略不寫。
舉例2:
代碼如下:
class FunctionDemo2
{
public static void main(String[] args)
{
int sum = getSum(4,6);
System.out.println("sum="+sum);
sum = getSum(2,7);
System.out.println("sum="+sum);
}
/*下面的這個(gè)功能定義思想有問題,為什么呢?因?yàn)橹粸橥瓿杉臃ㄟ\(yùn)算,至于是否要對(duì)和進(jìn)行打印操作,
那是調(diào)用者的事,不要在該功能中完成。*/
public static void get(int a,int b)
{
System.out.println(a+b);
return ;
}
}
如何定義一個(gè)函數(shù)呢?
1,既然函數(shù)是一個(gè)獨(dú)立的功能,那么該功能的運(yùn)算結(jié)果是什么先明確
因?yàn)檫@是在明確函數(shù)的返回值類型。
2,在明確在定義該功能的過程中是否需要未知的內(nèi)容參與運(yùn)算。
因?yàn)槭窃诿鞔_函數(shù)的參數(shù)列表(參數(shù)的類型和參數(shù)的個(gè)數(shù))。
代碼如下:
class FunctionDemo2
{
public static void main(String[] args)
{
/*
int sum = getSum(4,6);
System.out.println("sum="+sum);
sum = getSum(2,7);
System.out.println("sum="+sum);
*/
//get(4,5);
int x = getSum(4,4);
int y = getSum(7,9);
int num = getMax(x,y);
}
//需求:定義一個(gè)功能。完成3+4的運(yùn)算。并將結(jié)果返回給調(diào)用者。
/*
1,明確功能的結(jié)果:是一個(gè)整數(shù)的和。
2,在實(shí)現(xiàn)該功能的過程中是否有未知內(nèi)容參與運(yùn)算,沒有。
其實(shí)這兩個(gè)功能就是在明確函數(shù)的定義。
1,是在明確函數(shù)的返回值類型。
2,明確函數(shù)的參數(shù)列表( 參數(shù)的類型和參數(shù)的個(gè)數(shù))。
*/
public static int getSum()
{
return 3+4;
}
/*
以上這個(gè)函數(shù)的功能,結(jié)果是固定的,毫無(wú)擴(kuò)展性而言。
為了方便用戶需求。由用戶來指定加數(shù)和被加數(shù)。這樣,功能才有意義。
思路:
1,功能結(jié)果是一個(gè)和。返回值類型是int。
2,有未知內(nèi)容參與運(yùn)算。有兩個(gè)。這個(gè)兩個(gè)未知內(nèi)容的類型都是int。
*/
public static int getSum(int x,int y)
{
return x+y;
}
/*
需求:判斷兩個(gè)數(shù)是否相同。
思路:
1,明確功能的結(jié)果:結(jié)果是:boolean 。
2,功能是否有未知內(nèi)容參與運(yùn)算。有,兩個(gè)整數(shù)。
*/
public static boolean compare(int a,int b)
{
/*
if(a==b)
return true;
//else
return false;
*/
//return (a==b)?true:false;
return a==b;
}
/*
需求:定義功能,對(duì)兩個(gè)數(shù)進(jìn)行比較。獲取較大的數(shù)。
*/
public static int getMax(int a,int b)
{
/*
if(a>b)
return a;
else
return b;
//或者用下面的三元運(yùn)算符
*/
return (a>b)?a:b;
}
}
3) 練習(xí):
1,定義一個(gè)功能,用于打印矩形。
2,定義一個(gè)打印99乘法表功能的函數(shù)。
代碼如下:
class FunctionTest
{
public static void main(String[] args)
{
draw(5,6);
printHr();
draw(7,9);
printHr();
print99();
}
/*
定義一個(gè)功能,用于打印矩形。
思路:
1,確定結(jié)果:沒有,因?yàn)橹苯哟蛴。所以返回值類型是void
2,有未知內(nèi)容嗎?有,兩個(gè),因?yàn)榫匦蔚男泻土胁淮_定。
*/
public static void draw(int row,int col)
{
for(int x=0; x<row; x++)
{
for(int y=0; y<col; y++)
{
System.out.print("*");
}
System.out.println();
}
}
public static void printHr()
{
System.out.println("------------------------------");
}
/*
定義一個(gè)打印99乘法表功能的函數(shù)。
*/
public static void print99()
{
for(int x=1; x<=9; x++)
{
for(int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"t");
}
System.out.println();
}
}
}
三、函數(shù)的重載(overload)
重載的概念:
在同一個(gè)類中,允許存在一個(gè)以上的同名函數(shù),只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類型不同即可。
重載的特點(diǎn):
與返回值類型無(wú)關(guān),只看參數(shù)列表。
重載的好處:
方便于閱讀,優(yōu)化了程序設(shè)計(jì)。
重載示例:
返回兩個(gè)整數(shù)的和
int add(int x,int y){return x+y;}
返回三個(gè)整數(shù)的和
int add(int x,int y, int z){return x+y+z;}
返回兩個(gè)小數(shù)的和
double add(double x,double y){return x+y;}
什么時(shí)候用重載?
當(dāng)定義的功能相同,但參與運(yùn)算的未知內(nèi)容不同。
那么,這時(shí)就定義一個(gè)函數(shù)名稱以表示起功能,方便閱讀,而通過參數(shù)列表的不同來區(qū)分多個(gè)同名函數(shù)。
重載范例:
復(fù)制代碼 代碼如下:
class FunctionOverload
{
public static void main(String[] args)
{
add(4,5);
add(4,5,6);
print99();
}
public static void print99(int num)
{
for(int x=1; x<=num; x++)
{
for(int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"t");
}
System.out.println();
}
}
//打印99乘法表
public static void print99()
{
print99(9);
}
//定義一個(gè)加法運(yùn)算,獲取兩個(gè)整數(shù)的和。
public static int add(int x,int y)
{
return x+y;
}
//定義一個(gè)加法,獲取三個(gè)整數(shù)的和。
public static int add(int x,int y,int z)
{
return add(x,y)+z;
}
}
練習(xí):區(qū)分是否是重載
代碼如下:
void show(int a,char b,double c){}
下面的a,b,c,d,e,f與上述一句的區(qū)別:
a.void show(int x,char y,double z){}//沒有,因?yàn)楹驮瘮?shù)一樣。
b.int show(int a,double c,char b){}//重載,因?yàn)閰?shù)類型不同。注意:重載和返回值類型沒關(guān)系。
c.void show(int a,double c,char b){}//重載,因?yàn)閰?shù)類型不同。注意:重載和返回值類型沒關(guān)系。
d.boolean show(int c,char b){}//重載了,因?yàn)閰?shù)個(gè)數(shù)不同。
e.void show(double c){}//重載了,因?yàn)閰?shù)個(gè)數(shù)不同。
f.double show(int x,char y,double z){}//沒有,這個(gè)函數(shù)不可以和給定函數(shù)同時(shí)存在與一個(gè)類中。
如何區(qū)分重載:當(dāng)函數(shù)同名時(shí),只看參數(shù)列表。和返回值類型沒關(guān)系。
【Java語(yǔ)法基礎(chǔ)中函數(shù)的使用說明】相關(guān)文章:
Java語(yǔ)法基礎(chǔ)for語(yǔ)句練習(xí)09-21
Java基礎(chǔ)語(yǔ)法知識(shí)點(diǎn)07-31
Java語(yǔ)法基礎(chǔ)之for語(yǔ)句練習(xí)04-28
Java基礎(chǔ)語(yǔ)法面試題10-28
JAVA語(yǔ)法基礎(chǔ)之變量和基本數(shù)據(jù)類型10-28
java構(gòu)造函數(shù)調(diào)用技巧10-26
java調(diào)用c函數(shù)的實(shí)例09-16
java教程之Java編程基礎(chǔ)09-12
Java基礎(chǔ)知識(shí)精選09-07