JAVA基礎之函數

函數的定義:
函數就是定義在類中的具有特定功能的獨立程序。
函數也可稱爲方法。
關鍵字解釋
public 意爲權限
static 意爲靜態。
以上兩個關鍵字也叫修飾符。
函數的具體格式:
修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2...)
{
執行語句;
return 返回值;
}
注意:
函數名命名時,如果名稱由多個單詞組成,除第一個單詞首字母小寫以外,剩下的單詞首字母都得大寫。
這是規範,以後上班的時候會這樣要求。




函數是我們定義的一個功能,方便我們使用的時候調用,
既然叫函數,就是一個獨立的函數區間,不能寫在主函數內  
而主函數是靜態的,我們調用的時候是在主函數調用。
所以,定義的功能函數也得是靜態的,我們則必須加上
static關鍵字,public目前可寫可不寫。


比如,我們定義一個加法功能的函數。*/
int c=yuer(6,7); //這裏就是調用函數裏的功能,初始值在這裏賦予,運算所得的結果賦值給C變量。
System.out.println("c="+c);


linghan();//函數調用在主函數內。
linghan();


add(3,4);//調用的時候給出具體的行和列數值,直接輸出在控制檯,也就是DOS命令行上。
add(4,5);

boolean yinyin=acc(3,4);
System.out.println("yinyin="+yinyin);
boolean huanjie=abb(5,5);
System.out.println("huanjie="+huanjie);
boolean tangyi=aee(7,6);
System.out.println("tangyi="+tangyi);


int x=orange(5,6);
System.out.println("x="+x);


zhengYu();


char suini=tangLu(50);
System.out.println("這個同學分數對應的等級是"+suini);


int ade=tangShan(4,5,1024);
System.out.println(ade);


CFB();
}
public static int yuer(int a,int b)//yuer是函數名。
{
return a+b;//return是關鍵字,意爲返回。這裏定義的就是具體的功能。
}
/*特殊情況:
定義的函數功能沒有具體的返回值。這時return的後面直接用分號來結束。
因爲沒有具體的返回值,所以不能寫具體的返回值類型。
返回值類型用void來表示。
比如: */


public static void linghan()//void關鍵字表示無返回值類型函數、
{//注意:如果返回值類型是void,那麼函數中的return可以省略不寫。
//不過寫上也不算錯。
System.out.println("《月球上的人》");
return;
}
/*函數的特點:
1.定義函數可以將功能代碼進行封裝。
2.便於對該功能進行封裝。
3.函數只有被調用纔會被執行。
4.函數的出現提高了代碼的複用性。

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

練習題1
畫一個矩形打印在控制檯。

因爲是矩形,且直接打印在控制檯,所以沒有具體的返回值類型,關鍵字是void。*/
public static void  add(int a ,int b)//a,b代表矩形的行和列。
{
for (int d=1;d<=a;d++ )//函數內部可以用循環結構。
{
for (int e=1;e<=b ;e++ )//因爲我們不確定具體的行和列是多少,所以用變量來作爲區間限定。
{
System.out.print("*");
}
System.out.println();
}
return;//可省略不寫。
}
/*練習題二
判斷兩個數是否相等。
*/
public static boolean acc(int a,int b)
{
if (a==b)
{
return true;
}
else 
{
return false;
}

}


//上面的if語句我們還可以用三元運算符來進行。
public static boolean abb(int a,int b)
{
return (a==b)?true:false;
}
//因爲boolean類型的結果只能是true或false,所以我們還可直接寫作:
public static boolean aee(int a,int b)
{
return a==b;
}
/*練習題三
獲取兩個數中較大的那個數。*/
public static int orange(int a ,int b)
{
if (a>b)
{
return a;
}
else
{
return b;
}
//也可寫作:return (a>b)?a:b;
}


/*注意:
定義函數的時候,一定要明確兩點。
1.該函數功能的結果是什麼
2.該功能在實現過程中是否需要未知內容參與運算。


練習題四,
打印99乘法表。*/
public static void zhengYu()
{
for (int a=1;a<=9 ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
/*練習題五
根據成績獲取學生分數對應的等級
90-100 A
80-89  B
70-79  C
60-69  D
60以下 E
等級的值是一個字母,剛好是char型*/
public static char tangLu(int No)
{
if (No>=90&&No<=100)
{
return 'A';
}
else if (No>=80&&No<=89)
{
return 'B';
}
else if (No>=70&&No<=79)
{
return 'C';
}
else if (No>=60&&No<=69)
{
return 'D';
}
else 
return 'E';
}
/*函數的重載:
在同一個類中,允許存在一個以上的同名函數,只要他們的參數個數或參數類型不同即可。
比如: */
public static int tangShan(int a,int b)
{
return a+b;
}
//這是兩個整數的相加函數。
public static double tangShan(double a,double b)
{
return a+b;
}
//這是兩個小數的相加函數。
public static int tangShan(int a,int b,int c)
{
return a+b+c;
}
//這是三個整數相加的函數。


/*在調用的時候Java會根據調用的數值來確定具體該引用哪一組函數功能來執行。
雖然都求的是和,雖然都是同名的函數。但這並不會編譯運行失敗。


重載練習
打印99乘法表,
假設用戶的需求是,輸入到幾就打印到幾,如果沒有輸入,就默認到9,即標準乘法表。*/
public static void CFB(int c)
{
for (int a=1;a<=c ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
//這是給用戶輸入的乘法表,輸入幾就打印到幾,下面要做的是打印標準乘法表、
public static void CFB()
{
for (int a=1;a<=9 ;a++ )
{
for (int b=1;b<=a ;b++ )
{
System.out.print(b+"*"+a+"="+a*b+"\t");
}
System.out.println();
}
}
/*只要主函數調用的時候沒有輸入具體的值,我們就默認打印標準乘法表,如果輸入具體的值
我們就打印到具體的數值
但是這樣寫的話代碼的複用性會比較差,所以我們可以將第二個函數的代碼直接引用第一個函數的代碼。
就像這樣
public static void CFB()
{
CFB(9);
}
發佈了47 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章