首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 方法調用全解析:語法規則、執行流程與靜態非靜態調用差異

     編輯:Java 相關知識

7.4 方法調用:讓功能動起來

方法聲明創建功能,**調用才能執行**。J2SE 程序從 main 方法入口開始,所有方法必須直接/間接被 main 調用才會執行。

調用執行流程

遇到調用 → 跳轉方法內部 → 執行至 return 或結束 → 返回調用點繼續向下。

7.4.1 同類內部調用語法:static 關鍵字決定調用方式

方法分靜態方法(有 static)與非靜態方法(無 static),形成四種調用組合:

調用方被調用方調用語法示例
非靜態非靜態直接調用method()
非靜態靜態直接調用method()
靜態靜態直接調用method()
靜態非靜態需創建對象new Class().method()

前三種:直接調用語法

方法名(參數值...);  // 可嵌套:max(max(a,b), max(c,d))

返回值可接收可忽略,調用表達式類型即返回類型。

第四種:靜態調用非靜態

public class CallMethod2 {
    public static void main(String[] args) {
        CallMethod2 cm = new CallMethod2();  // 創建對象
        int n = cm.max(1, 2);                // 對象名.方法名
    }
    public int max(int a, int b) { ... }     // 非靜態方法
}

本質:非靜態方法屬於對象,必須通過對象實例調用。

7.4.2 方法調用執行流程演示

public class CallMethod3 {
    public static void main(String[] args) {
        System.out.println(1);
        printTest();
        System.out.println(2);
        max(10, 20);
        System.out.println(3);
    }
    public static int max(int a, int b) {
        System.out.println("進入max方法內部!");
        return a > b ? a : b;
    }
    public static void printTest() {
        System.out.println("進入printTest方法內部!");
        System.out.println("printTest方法執行完畢!");
    }
}

輸出結果

1
進入printTest方法內部!
printTest方法執行完畢!
2
進入max方法內部!
3

清晰展示了**調用時跳轉、返回後續續**的棧幀執行模型。

跨類調用預告

不同類之間的方法調用(類名.靜態方法、對象.非靜態方法)將在類與對象章節詳細講解。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved