歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java語言基礎組成—函數

Java語言由8個模塊構成,分別為:關鍵字、標識符(包名、類名、接口名、常量名、變量名等)、注釋、常量和變量、運算符、語句、函數、數組。

本片主要介紹Java中的函數,函數是Java中最小的功能單元。

1.函數的定義
    1) 定義:指在類中的具有特定功能的一段獨立小程序,也稱為方法。
    2) 格式:
   修飾符 返回值類型 函數名(參數類型 形式參數1,參數類型 形式參數2, ... ) 
   {
    執行語句;
      return 返回值;
   }
   返回值類型:函數運行後的結果的數據類型。
   參數類型:是形式參數的數據類型。
   實際參數:傳遞給形式參數的具體數值。
   return:用於結束函數。
   返回值:該值會返回給調用者。
    3) 范例
      //計算任意整數*3+5的結果
    class FunctionDemo{
   public static void main(String[] args){
     int x=4;
     System.out.println(x*3+5);
     int y=6;
     System.out.println(y*3+5);    
   }
        }

      發現以上的運算,因為獲取不同數據的運算結果,代碼出現了重復。
    為了提高代碼的復用性,對代碼進行抽取。
    將這個部分定義成一個獨立的功能,方便使用。
    Java中對功能的定義是通過函數的形式來體現的。
    即需要定義一個功能:完成任意整數*3+5的值。
   public static int getResult(int num){
    return num*3+5;
   }
      因此,上面的代碼就可以簡寫為:
  public class FuntionDemo{
   public static void main(String[] args){
    int x=getResult(4);
    int y=getResult(6);
    System.out.println("x="+x+",y="+y);
    }
   }
   public static int getResult(int num){
    return num*3+5;
   }
  //該程序運行結果為:x=17,y=23

2.函數的特點
    1) 定義函數可以將功能代碼進行封裝。
    2) 便於對該功能進行復用。
    3) 函數只有被調用才會執行。
  4) 函數的出現提高了代碼的復用性。
  5) 當函數沒有具體返回值的情況,返回值類型用關鍵字void標識,即void代表的是函數沒有具體返回值,那麼該函數中的return語句如果在最後一行可以省略不寫,該功能也不能在輸出語句中輸出,在功能中可以輸出,函數直接調用。
  6) 注意寫法格式:
          函數只能調用函數,不可以在函數內部定義函數(函數是平級的,誰也不包含誰)。
          定義函數時,函數的結果應該返回給調用者,交由調用者處理。
  7) 例子說明:直接打印結果,不返回值(注意對應第五個特點)
   public class FuntionDemo{
    public static void main(String[] args){
     getResult(5);
   }
   public static void getResult(int num){
    System.out.println(num*3+5);
    return;  //return可以省略不寫。
    }
   }
  //該程序運行結果為:20

3.函數的應用
    1) 如何定義一個函數?
  *1* 既然函數是一個獨立的功能,那麼先明確該功能的運算結果是什麼。
  *2* 再明確在定義該功能的過程中是否需要未知的內容參與運算。
  *3* 定義函數時只需完成相對應的功能,將結果返回給調用者,調用者怎麼使用是調用者的事情。

    2)實例說明
  這裡以簡單的加法運算為例,主要介紹函數的應用,對於函數的特點體現不是特別明確。
        *1* 需求:定義一個功能,完成3+4的運算,並將結果返回給調用者。
        *2* 思路:1.明確該功能的運算結果:是一個整數的和,即明確函數的返回值類型。
            2.再明確在定義該功能的過程中沒有未知的內容參與運算,即明確函數的參數列表(參數類型和參數個數)。
  *3* 程序實現:
  class FunctionDemo2{
   public static void main(String[] args){
   int  sum=getAdd();
   System.out.println("sum="+sum);
   }
   public static int getAdd(){
   return 3+4;
   }
  }
  *4* 結果分析:該程序運行結果為:sum=7

以上函數的功能,結果是固定的,無擴展性。

為方便用戶需求,由用戶來指定加數和被加數,這樣功能才有意義。
  *1* 需求:定義一個功能,完成任意兩個整數加法的運算,並將結果返回給調用者。
        *2* 思路:
            功能的結果是一個整數,即返回值類型為int。
            有兩個未知內容參與運算,類型為int。
  *3* 程序實現:
   class FunctionDemo2{
    public static void main(String[] args){
     int  sum=getAdd(3,5);
     System.out.println("sum="+sum);
     int  sum=getAdd(6,6);
     System.out.println("sum="+sum);
    public static int getAdd(int a int  b){
     return a+b;
     }
    }
  *4* 結果分析:該程序運行結果為:sum=8
         sum=12

    3)函數的具體應用實例(一)
  *1* 需求:判斷兩個數是否相等。
        *2* 思路:
            功能的結果是一個boolean型變量,即返回值類型為boolean。
            有兩個未知內容參與運算,類型為int。
  *3* 程序實現:
   class FunctionDemo{
    public static void main(String[] args){
     compare(3,5);
     System.out.println(compare(3,5));
     }
    public static boolean compare(int a,int  b){
     return (a==b)?true:false;
     }
    }
  *4* 結果分析:該程序運行結果為:flase

    4)函數的具體應用實例(二)
  *1* 需求:輸出兩個整數中的最大值。
        *2* 思路:
            功能的結果是int型變量,即返回值類型為int。
            有兩個未知內容參與運算,類型為int。
  *3* 程序實現:
   class FunctionDemo{
    public static void main(String[] args){
     getMax(3,5);
     System.out.println(getMax(3,5));
     }
    public static int getMax(int a,int  b){
     return (a>b)?a:b;
     }
    }
  *4* 結果分析:該程序運行結果為:5


    4)函數的具體應用實例(三)
  *1* 需求:定義一個功能,用於打印矩形。
        *2* 思路:
            功能的結果直接打印,所以返回值類型是void。
            有兩個未知內容(矩形的行和列)參與運算,類型為int。
  *3* 程序實現:
   class FunctionDemo{
    public static void main(String[] args){
     draw(2,4);
     printHr();
     draw(3,6);
     printHr();
     }
    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("----------------------");
    }
   }
  *4* 結果分析:該程序運行結果為:
      ****
      ****
      ----------------------
      ******
      ******
      ******
      ----------------------

4.函數的重載
    1) 重載的概念
  在同一個類中,允許存在一個以上的同名函數,只要它們的參數個數或者參數類型不同即可。。
    2) 重載的特點
  與返回值類型無關,只看參數列表。
    3) 重載的好處
  方便於閱讀,優化了程序設計。
  4) 重載示例
   *1*返回任意兩個小數的和
    int add(double a,double b){return a+b;}
   *2*返回任意兩個整數的和
    int add(int a,int b){return a+b;}
   *3*返回任意三個整數的和
    int add(int a,int b,int c){return a+b+c;}

  5) 重載的應用(什麼時候用重載)
        當定義的功能相同,但參與運算的未知內容不同時,通過參數列表的不同來區分多個同名函數。
  6)重載應用實例
  class FunctionOverload {
   public static void main(String[] args) {
    int x=add(3,6);
    System.out.println(x);
    int y=add(3,6,7);
    System.out.println(y);
   }
   //定義一個加法運算,獲取兩個整數的和。
   public static int  add(int a, int b){ 
    return a+b;
    }
   //定義一個加法運算,獲取三個整數的和。
   public static int  add(int a, int b,int c){
    return a+b+c;
    }
  }
  //該程序運行結果為:9
          16

Copyright © Linux教程網 All Rights Reserved