Java語法基本之函數的應用解釋。本站提示廣大學習愛好者:(Java語法基本之函數的應用解釋)文章只能為提供參考,不一定能成為您想要的結果。以下是Java語法基本之函數的應用解釋正文
函數
四個方面:
函數的界說
函數的特色
函數的運用
函數的重載
1、函數的界說及特色
1) 甚麼是函數?
函數就是界說在類中的具有特定功效的一段自力小法式,函數也稱為辦法
2)Java中函數的格局:
潤飾符 前往值類型函數名(參數類型 情勢參數1,參數類型 情勢參數2,。。)
{ 履行語句;
return 前往值;
}
前往值類型:函數運轉後的成果的數據類型
參數類型:是情勢參數的數據類型
情勢參數:是一個變量,用於存儲挪用函數時傳遞給函數的現實參數
現實參數:傳遞給情勢參數的詳細數值
return:用於停止函數
前往值:該值會前往給挪用者
3) 函數的特色
a) 界說函數可以將功效代碼停止封裝
b) 便於對該功效停止復用
c) 函數只要被挪用才會被履行
d) 函數的湧現進步了代碼的復用性
e) 關於函數沒有詳細前往值的情形,前往值類型用症結字void表現,那末該函數中的return語句假如在最初一行可以省略不寫,體系會幫你主動加上。
注:
a) 函數中只能挪用函數,弗成以在函數外部界說函數。
b) 界說函數時,函數的成果應當前往給挪用者,交由挪用者處置。
c) 當函數運算後,沒有詳細的前往值時,這是前往值類型用一個特別的症結字來標識該症結字就是void,void:代表的是函數沒有詳細前往值的情形。
d) 當函數的前往值類型是void時,函數中的return語句可以省略不寫。
4) 若何界說一個函數?
函數其實就是一個功效,界說函數就是完成功效,經由過程兩個明白來完成:
1)、明白該功效的運算完的成果,實際上是在明白這個函數的前往值類型。
2)、在完成該功效的進程中能否有未知內容介入了運算,其實就是在明白這個函數的參數列表(參數類型&參數個數)。
5) 函數的感化:
1)、用於界說功效。
2)、用於封裝代碼進步代碼的復用性。
留意:函數中只能挪用函數,不克不及界說函數。
6) 主函數:
1)、包管該類的自力運轉。
2)、由於它是法式的進口。
3)、由於它在被jvm挪用。
7) 函數界說稱號是為何呢?
答:1)、為了對該功效停止標示,便利於挪用。
2)、為了經由過程稱號便可以明白函數的功效,為了增長代碼的浏覽性。
2、函數的運用
1) 兩個明白
a) 明白要界說的功效最初的成果是甚麼?
b) 明白在界說該功效的進程中,能否須要未知內容介入運算
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);
}
}
發明以上的運算,由於獲得分歧數據的運算成果,代碼湧現了反復。
為了進步代碼的復用性。對代碼停止抽取。將這個部門界說成一個自力的功效。便利與往後應用。
java中對功效的界說是經由過程函數的情勢來表現的。
明白功效:須要界說功效,完成一個整數的*3+5的運算,
1,先明白函數界說的格局。
/*
潤飾符前往值類型函數名(參數類型情勢參數1,參數類型情勢參數2,)
{
履行語句;
return 前往值;
}
class FunctionDemo
{
public static void getResult(int num)
{
System.out.println(num * 3 + 5);
return;//可以省略
}
public static void main(String[] args)
{
getResult(5);
}
}
對上述關於return能否省略這一小小常識點的總結:
當函數運算後,沒有詳細的前往值時,這是前往值類型用一個特別的症結字來標識。
該症結字就是void。void:代表的是函數沒有詳細前往值的情形。
當函數的前往值類型是void時,函數中的return語句可以省略不寫。
舉例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);
}
/*上面的這個功效界說思惟有成績,為何呢?由於只為完成加法運算,至因而否要對和停止打印操作,
那是挪用者的事,不要在該功效中完成。*/
public static void get(int a,int b)
{
System.out.println(a+b);
return ;
}
}
若何界說一個函數呢?
1,既然函數是一個自力的功效,那末該功效的運算成果是甚麼先明白
由於這是在明白函數的前往值類型。
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);
*/
//get(4,5);
int x = getSum(4,4);
int y = getSum(7,9);
int num = getMax(x,y);
}
//需求:界說一個功效。完成3+4的運算。並將成果前往給挪用者。
/*
1,明白功效的成果:是一個整數的和。
2,在完成該功效的進程中能否有未知內容介入運算,沒有。
其實這兩個功效就是在明白函數的界說。
1,是在明白函數的前往值類型。
2,明白函數的參數列表( 參數的類型和參數的個數)。
*/
public static int getSum()
{
return 3+4;
}
/*
以上這個函數的功效,成果是固定的,毫無擴大性而言。
為了便利用戶需求。由用戶來指定加數和被加數。如許,功效才成心義。
思緒:
1,功效成果是一個和。前往值類型是int。
2,有未知內容介入運算。有兩個。這個兩個未知內容的類型都是int。
*/
public static int getSum(int x,int y)
{
return x+y;
}
/*
需求:斷定兩個數能否雷同。
思緒:
1,明白功效的成果:成果是:boolean 。
2,功效能否有未知內容介入運算。有,兩個整數。
*/
public static boolean compare(int a,int b)
{
/*
if(a==b)
return true;
//else
return false;
*/
//return (a==b)?true:false;
return a==b;
}
/*
需求:界說功效,對兩個數停止比擬。獲得較年夜的數。
*/
public static int getMax(int a,int b)
{
/*
if(a>b)
return a;
else
return b;
//或許用上面的三元運算符
*/
return (a>b)?a:b;
}
}
3) 演習:
1,界說一個功效,用於打印矩形。
2,界說一個打印99乘法表功效的函數。
class FunctionTest
{
public static void main(String[] args)
{
draw(5,6);
printHr();
draw(7,9);
printHr();
print99();
}
/*
界說一個功效,用於打印矩形。
思緒:
1,肯定成果:沒有,由於直接打印。所以前往值類型是void
2,有未知內容嗎?有,兩個,由於矩形的行和列不肯定。
*/
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("------------------------------");
}
/*
界說一個打印99乘法表功效的函數。
*/
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();
}
}
}
3、函數的重載(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;}
甚麼時刻用重載?
當界說的功效雷同,但介入運算的未知內容分歧。
那末,這時候就界說一個函數稱號以表現起功效,便利浏覽,而經由過程參數列表的分歧來辨別多個同名函數。
重載典范:
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);
}
//界說一個加法運算,獲得兩個整數的和。
public static int add(int x,int y)
{
return x+y;
}
//界說一個加法,獲得三個整數的和。
public static int add(int x,int y,int z)
{
return add(x,y)+z;
}
}
演習:辨別能否是重載
void show(int a,char b,double c){}
上面的a,b,c,d,e,f與上述一句的差別:
a.
void show(int x,char y,double z){}//沒有,由於和原函數一樣。
b.
int show(int a,double c,char b){}//重載,由於參數類型分歧。留意:重載和前往值類型沒緊要。
c.
void show(int a,double c,char b){}//重載,由於參數類型分歧。留意:重載和前往值類型沒緊要。
d.
boolean show(int c,char b){}//重載了,由於參數個數分歧。
e.
void show(double c){}//重載了,由於參數個數分歧。
f.
double show(int x,char y,double z){}//沒有,這個函數弗成以和給定函數同時存在與一個類中。
若何辨別重載:當函數同名時,只看參數列表。和前往值類型沒緊要。