天天看點

小白必看!Java函數的基本知識與應用

作者:雲端源想IT教育訓練
小白必看!Java函數的基本知識與應用

“這裡是雲端源想IT,幫你輕松學IT”

嗨~ 今天的你過得還好嗎?

時光緩緩

歲月凝香

暖陽碎了一地的光

- 2023.05.26 -

計算機的函數,是一個固定的一個程式段,或稱其為一個子程式,它在可以實作固定運算功能的同時,還帶有一個入口和一個出口,所謂的入口,就是函數所帶的各個參數,我們可以通過這個入口,把函數的參數值代入子程式,供計算機處理;所謂出口,就是指函數的函數值,在計算機求得之後,由此口帶回給調用它的程式。

前兩期内容我們講了Java中資料類型與變量的相關基礎知識,今天我們再來看看Java中函數的基本知識和應用,老規矩!先收藏一波!

小白必看!Java函數的基本知識與應用

一、函數的定義

什麼是函數?函數就是定義在類中的具有特定功能的一小段獨立的代碼,也稱為方法。

小白必看!Java函數的基本知識與應用

函數格式:

修飾符 傳回值類型 函數名稱(參數類型 參數1,參數類型參數2, . . . ){

函數執行代碼;

return 傳回值;

}

eg:

public static int addFunc(int a,int b){

return a+b;

}

這是一個名為"addFunc"的Java方法或函數,具有兩個整數參數"a"和"b"。它具有public通路修飾符,static關鍵字表示可以在不建立類的執行個體的情況下調用它,并傳回一個整數值。實作将兩個參數相加并使用return語句傳回結果。

小白必看!Java函數的基本知識與應用

傳回值類型:函數運作後的結果類型。

參數類型:是形式參數的資料類型。

形式參數:是一個變量,由于存儲調用函數時傳遞給函數的實際參數。

實際參數:傳遞給函數的具體值。

return:用于結束函數。

傳回值:函數運算後的結果值,該值會傳回給該函數的調用者。

注意:當函數沒有傳回值類型是用void來表示;如果傳回值類型是void,name函數中的return語句可以省略不寫。

例如:

public static void sout( int a){

System.out.println(a);

}

二、函數的特點

  • 定義函數可以将功能代碼進行封裝使用
  • 便于對該功能進行複用
  • 函數隻有被調用時才會執行
  • 函數的出現提高了代碼的複用性
小白必看!Java函數的基本知識與應用

注意:

  • 函數中隻能調用函數,不可以在函數内部定義函數。
  • 定義函數時函數的結果應該傳回給調用者,交給調用者處理。

函數調用的記憶體模型:就是函數的壓棧過程、彈棧過程。

定義函數:

  1、函數是一個獨立的功能,明确該功能運算結果。

  2、明确是否需要未知的内容參與運算。

三、函數的應用

定義函數的兩大原則:

(1)明确函數的功能結果是什麼,确定函數的傳回值類型。

(2)明确這個功能實作過程中是否需要未知内容參與運算,這就是函數的參數清單(參數的個數,參數的類型)。

小白必看!Java函數的基本知識與應用

下面分享幾個例子,讓大家更直覺的了解:

需求1: 定義一個功能,完成兩個整數的和的擷取。

思路:既然定義功能,就是可以用函數來展現。如何定義一個函數呢?通過兩步驟完成。

  • 步驟一:這個功能的結果是什麼?
  • 是和--->傳回值類型是int 。
  • 步驟二:這個功能實作過程中是否需要未知内容參與運算?
  • 有,加數和被加數

注意:傳回值類型和參數類型沒有直接關系。

public static int myAdd(int a,int b)

{

int sum = a+b;

return sum;

}

需求2: 定義一個功能,畫一個矩形在控制台。

  • 步驟一:這個功能的結果是什麼?
  • 沒有結果----> void
  • 步驟二:這個功能實作過程中是否需要未知内容參與運算?
  • 有,行和列不确定----->(a int,b int)

public static void myDraw(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: 定義一個功能,比較兩個數是否相等。

  • 步驟一:這個功能的結果是什麼?
  • 有 ----> boolean.
  • 步驟二:這個功能實作過程中是否需要未知内容參與運算?
  • 有 ----> (int a,int b)

public static boolean myEquals(int a,int b)

{

/*

if(a==b)

return true;

else

return false;

boolean x ;

if(a==b)

x = true;

else

x = false;

return x;

*/

// return (a==b)?true:false;

return a==b;

}

四、函數的重載

在同一個類中,允許存在一個以上的同名函數,隻要他們的參數個數或者參數類型不用即可。函數的重載現象,隻存在于強資料類型語言中(java、c、c++),弱資料類型語言不存在(如:JavaScript、PHP、python)。

小白必看!Java函數的基本知識與應用

重載特點:與傳回值無關,隻看參數清單。

重載的好處:友善于閱讀,優化了程式設計。

函數的重寫(Overriding):

  • “重載”不同于“重寫”
  • “重寫(覆寫)”概念存在于繼承關系中,子類可繼承父類中的方法而不需要單獨編輯,這提供便捷化。但有的時侯,子類不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。
  • 父類中存在一個函數,子類中也存在一個同名函數,在了類中對函數重新編輯,做得更具體化。
小白必看!Java函數的基本知識與應用

重寫的規則:

  1、在子類中可以根據需要對從父類中繼承來的方法進行重寫。

  2、重寫的方法和被重寫的方法必須具有相同方法名稱、參數清單和傳回類型。

  3、重寫方法不能使用比被重寫的方法更嚴格的通路權限。

局部變量:也稱本地變量,是定義在函數内部的變量,在使用之前必須指派;

下面再給大家分享一個示例:

package com.home.study.function;

/*

函數重載:

1、同一個類中

2、同名稱

3、參數個數不同,或者參數類型不同

4、與傳回值類型無關

*/

public class FunctionDemo {

public static void main(String[] args) {

int a=3;

int b=5;

int c=7;

// a+b

int sum=0;

double sum_d =0.0;

sum = add(a, b);

System.out.println(sum);

sum = add(a, b, c);

System.out.println(sum);

sum_d = add(a, b);

System.out.println(sum_d);

}

public static int add(int a, int b){

return a+b;

}

public static double add(double a,double b){

return a+b;

}

public static int add (int a, int b,int c){

return a+b+c;

}

}

這段代碼示範了 Java 中函數重載的概念。函數重載指在同一個類中定義了多個同名函數,但是它們的參數清單不同(即參數個數或類型不同)。在調用該函數時,Java 根據傳入的參數類型和個數比對對應的函數,并執行相應的代碼塊。

小白必看!Java函數的基本知識與應用

此外,函數重載與傳回值類型無關,即可以有不同的傳回值類型。在上述示例中,add 函數被重載了三次:兩個整型參數的 add 函數、兩個雙精度浮點型參數的 add 函數和三個整型參數的 add 函數。通過傳入不同的參數,實作了不同類型的加法操作。

五、關于遞歸

遞歸是函數自身調用自身的現象,遞歸的思想是分治思想的展現。

典型遞歸:(斐波那契數列)。

代碼如下:

package Demo;

import java.util.Scanner;

public class ZuoYe1 {

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

System.out.print(“請輸入數字:”);

int num = sc.nextInt();

//數列:1,1,2,3,5,8…

for (int i=1;i<=num;i++){ //輸出num個斐波那契數列

System.out.print(input(i));

}

}

public static int input(int n){

if(n1 || n2)

return 1;

else

return input(n-1)+input(n-2);

}

}

這段代碼是一個Java程式,它要求使用者輸入一個數字,然後輸出對應數量的斐波那契數列。斐波那契數列是指開始的兩個元素都為1,随後的每個元素都是前兩個元素的和。

在主函數中,首先建立了一個Scanner對象用于讀取使用者輸入,然後提示使用者輸入數字,并且将該值存儲在變量num中。

小白必看!Java函數的基本知識與應用

接下來使用for循環周遊num次,每次調用名為input()的函數并傳入循環變量i作為參數,最終輸出對應的斐波那契數列。在input()函數中,如果參數n小于等于2,則傳回1,否則遞歸調用自身,計算n-1和n-2的斐波那契數列元素之和,最終傳回結果。

本文從函數的定義、特點、運用以及函數的重載和遞歸這幾個方面講解了Java中函數的相關基礎知識,你學會了嗎?記得收藏起來以便學習時随時檢視哦。

小白必看!Java函數的基本知識與應用

我們下期再見!

小白必看!Java函數的基本知識與應用

END

文案編輯|雲端學長

文案配圖|雲端學長

内容由:雲端源想分享

小白必看!Java函數的基本知識與應用

繼續閱讀