閱讀目錄:小程序
1.函數的定義函數
2.函數的特色優化
3.函數的應用spa
4.函數的重載設計
1.函數的定義 答:函數就是定義在類中的具備特定功能的一段獨立小程序。 函數也稱爲方法。 2.函數的格式 修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2,...) { 執行語句; return 返回值; } 返回值類型:函數運行後的結果的數據類型。 參數類型:是形式參數的數據類型。 形式參數:是一個變量,用於存儲調用函數時傳遞給函數的實際參數。 return:用於結束函數。 返回值:該函數運算後的結果,該結果會返回給調用者。
示例:code
class FunctionDemo { public static void main(String[] args) { //int a = 3; //int b = 4; //int c; //c = a+b; //c = 5+7; //c = 9+8; int c = add(3,4) System.out.println("c="+c) } public static int add(int a, int b) { return a+b; }
/*
裝飾符 返回值類型 函數名(參數類型 形式參數1, 參數類型 形式參數2,...)
{
執行語句;
return 返回值;
}
*/blog
}
特殊狀況示例: 總結: 沒有具體返回值時,返回值類型用void表示 注意: 若是返回值類型是void,那麼函數中的return語句能夠省略不寫。 class FunctionDemo01 { public static void main(String[] args) { myPrint(); myPrint(); } public static void myPirnt() { System.out.println("hello world") return; } public static int add(int a,int b) { return a+b; } }
函數的特色: 1.定義函數能夠將功能代碼進行封裝 2.便於對該功能進行復用 3.函數只有被調用纔會被執行 4.函數的出現提升了代碼的複用性 5.對於函數沒有具體返回值的狀況,返回值類型用關鍵字void表示 那麼該函數中的return語句若是在最後一行能夠省略不寫。 注意: 函數中只能調用函數,不能夠在函數內部定義函數。 定義函數時,函數的結果應該返回給調用者,交由調用者處理。
注意點:小誤區get
class FunctionDemo02 { public static void main(String[] args) { int x = add(3,5); //絞肉機 System.out.println("x="+x) add(3,5) } //這種形式不合適,定義函數的誤區,由於直接就輸出結果了。 public static void add(int a;int b) { System.out.println(a+b); return; } //用這種格式比較適合 public static int add(int a,int b) { return a+b; } }
練習:io
class FunctionDemo03 { public static void main(String[] args) { System.out.println("hello world") } /* 需求1: 定義一個功能,完成兩個整數的和的獲取。 思路:既然定義功能,就是能夠用函數來體現。 如何定義一個函數呢? 經過兩個明確來完成。 明確1:這個功能的結果是什麼? 是和,是功能的結果,因此該功能的返回值類型是int 明確2:這個功能實現過程當中是否須要未知內容參與運算? 有,加數和被加數,這就是函數的參數列表(參數的個數,參數的類型) 注意: 返回值類型和參數類型沒有直接關係。 */ public static int add(int a,int b) { int sum = a+b; return sum; } /* 需求2: 定義一個功能,畫一個矩形在控制檯。 明確1: 這個功能的結果是什麼? 答:沒有結果,由於直接打印到了控制檯,並未返回給調用者。用void表示 明確2: 這個功能實現過程當中是否須要未知內容參與運算? 答:有,行和列不肯定。兩個。整數int */ public static void draw(int row,int col) { for (int x=1; x<=row; x++) { for (int y=1; y<=col, y++) { System.out.print("*") } System.out.println(); } } /* 需求3: 定義一個功能,比較兩個數是否相等。 明確1: 這個功能的結果是什麼? 答:有, boolean 明確2: 這個功能實現過程當中是否須要未知內容參與運算? 答:有兩個整數。 */ public static boolean equals(int a,int b) { /* if(a==b) return true; else return flase; */ //return (a == b)? true:false; return a===b; } /* 需求1: 定義一個功能,獲取兩個數較大的數。 明確1: 這個功能的結果是什麼? 答:有,int 明確2: 這個功能實現過程當中是否須要未知內容參與運算? 答:有參與比較的兩個整數,int */ public static int getMax(int a, int b) { if (a>b) return a; else return b; } /* 定義功能: 打印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() } } /* 根據考試成績獲取學生分數對應的等級 90-100 A 80-89 B 70-79 C 60-69 D 60如下 E 結果: 等級,字符,char 參數: 分數,int */ public static char getLevel(int num) { char level; if (num>=90n && num<=100) level = 'A' else if (num>=80 && num <=89) level = 'B' else if (num>=70 && num <=79) level = 'C' else if (num>=60 && num <=69) level = 'D' else level = 'E' return level; } }
1.函數的重載 重載的概念: 在同一個類中,容許存在一個以上的同名函數,只要他們的參數個數或者參數類型不一樣便可。 重載的特色: 與返回值類型無關,只看參數列表 重載的好處: 方便於閱讀,優化了程序設計 重載示例: //返回兩個整數的和 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 FunctionDemo4 { public static void main(String [] args) { //System.out.println("Hello world") printCFB(9); } /* 1.同一個類 2.同名 3.參數個數不一樣,或者,參數類型不一樣 */ //加法運算,兩個整數的和 public static int add1(int a,int b) { return a+b; } //加法運算,兩個小數的和 public short double add2(double a,double b) { return a+b; } //加法運算,三個整數的和 public static int add3(int a,int b,int c) { return a+b+c; } /* 打印乘法表 */ public static void printCFB(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(); } } /* 打印標準乘法表 */ public static void printCFB() { printCFB(9); } }