Java方法的基本用法

Java方法的基本用法

  • 前言
  • 一、什么是方法
    • 方法存在的意義
    • 示例
  • 二、方法定義語法
    • 基本語法
    • 代碼示例
    • 注意事項
  • 三、方法調用的執行過程
    • 基本規則
    • 代碼示例
      • 計算兩個整數相加
      • 計算 1! + 2! + 3! + 4! + 5!
  • 四、實參和形參的關系
    • 代碼示例
      • 交換兩個整型變量
        • 原因分析
        • 解決辦法
  • 五、沒有返回值的方法
    • 代碼示例


前言

推薦一個網站給想要了解或者學習人工智能知識的讀者,這個網站里內容講解通俗易懂且風趣幽默,對我幫助很大。我想與大家分享這個寶藏網站,請點擊下方鏈接查看。
https://www.captainbed.cn/f1

Java方法的基本用法包括定義方法(指定方法名、返回類型、參數列表和方法體),調用方法(通過方法名及參數列表調用),以及傳遞參數(按值傳遞基本數據類型,按引用傳遞對象)。


一、什么是方法

方法就是一個代碼片段. 類似于 C 語言中的 “函數”.

Java方法是Java語言中用于執行特定任務的一段代碼。它是程序的基本構建塊之一,常用于組織和封裝可重復使用的功能。方法可以接受輸入參數,并返回一個值,也可以不接受參數或返回值。在調用方法時,需要提供所需的參數,并根據方法的定義來處理和返回結果。通過使用方法,可以提高代碼的可讀性、可維護性和重用性。在Java中,每個方法都屬于一個類或對象,并且可以在其他方法中調用。方法的語法如下:

修飾符 返回類型 方法名(參數列表) {// 方法體// 執行特定任務的代碼return 返回值; // 如果方法有返回值的話
}

方法存在的意義

  1. 是能夠模塊化的組織代碼(當代碼規模比較復雜的時候).
  2. 做到代碼被重復使用, 一份代碼可以在多個位置使用.
  3. 讓代碼更好理解更簡單.
  4. 直接調用現有方法開發, 不必重復造輪子

示例

計算 1! + 2! + 3! + 4! + 5!


public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 5; i++) {int tmp = 1;for (int j = 1; j <= i; j++) {tmp *= j;}sum += tmp;}System.out.println("sum = " + sum);
}

這段代碼的作用是計算1! + 2! + 3! + 4! + 5! 的值,并打印出結果。

在程序運行過程中,使用嵌套的兩個for循環來計算每個階乘。外層的for循環從1遍歷到5,表示計算1!到5!的值。內層的for循環從1遍歷到當前的外層循環變量i的值,表示計算每個數字的階乘。

在內層循環中,創建一個臨時變量tmp,并將其初始化為1。內層循環每次迭代都將tmp乘以當前的j值,從而計算階乘值。最后,將每個階乘值加到外層循環的變量sum中。

最后,通過System.out.println()語句打印出計算結果。
在這里插入圖片描述
這個代碼中使用雙重循環, 比較容易寫錯

二、方法定義語法

基本語法

// 方法定義
public static 方法返回值 方法名稱([參數類型 形參 ...]){方法體代碼;[return 返回值];}// 方法調用
返回值變量 = 方法名稱(實參...);

代碼示例

實現一個方法實現兩個整數相加

class Test {public static void main(String[] args) {int a = 10;int b = 20;// 方法的調用int ret = add(a, b);System.out.println("ret = " + ret);}// 方法的定義public static int add(int x, int y) {return x + y;}
}

注意事項

  1. publicstatic 兩個關鍵字在此處具有特定含義, 我們暫時不討論, 后面文章會詳細介紹.
  2. 方法定義時, 參數可以沒有. 每個參數要指定類型
  3. 方法定義時, 返回值也可以沒有, 如果沒有返回值, 則返回值類型應寫成 void
  4. 方法定義時的參數稱為 “形參”, 方法調用時的參數稱為 “實參”.
  5. 方法的定義必須在類之中, 代碼書寫在調用位置的上方或者下方均可.
  6. Java 中沒有 “函數聲明” 這樣的概念

三、方法調用的執行過程

基本規則

  • 定義方法的時候, 不會執行方法的代碼. 只有調用的時候才會執行.

  • 當方法被調用的時候, 會將實參賦值給形參.

  • 參數傳遞完畢后, 就會執行到方法體代碼.

  • 當方法執行完畢之后(遇到 return 語句), 就執行完畢, 回到方法調用位置繼續往下執行.

  • 一個方法可以被多次調用

代碼示例

計算兩個整數相加

class Main {public static void main(String[] args) {int a = 10;int b = 20;System.out.println("第一次調用方法之前");int ret = add(a, b);System.out.println("第一次調用方法之后");System.out.println("ret = " + ret);System.out.println("第二次調用方法之前");ret = add(30, 50);System.out.println("第二次調用方法之后");System.out.println("ret = " + ret);}public static int add(int x, int y) {System.out.println("調用方法中 x = " + x + " y = " + y);return x + y;}
}

在這里插入圖片描述

計算 1! + 2! + 3! + 4! + 5!

class Main {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 5; i++) {sum += factor(i);}System.out.println("sum = " + sum);}public static int factor(int n) {System.out.println("計算 n 的階乘中! n = " + n);int result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}
}

在這里插入圖片描述
使用方法, 避免使用二重循環, 讓代碼更簡單清晰.

四、實參和形參的關系

代碼示例

交換兩個整型變量

class Main {public static void main(String[] args) {int a = 10;int b = 20;swap(a, b);System.out.println("a = " + a + " b = " + b);}public static void swap(int x, int y) {int tmp = x;x = y;y = tmp;}
}

在這里插入圖片描述

原因分析

剛才的代碼, 沒有完成數據的交換.

對于基礎類型來說, 形參相當于實參的拷貝. 即 傳值調用

int a = 10;
int b = 20;
int x = a;
int y = b;
int tmp = x;
x = y;
y = tmp;

可以看到, 對 xy 的修改, 不影響 ab.

解決辦法

傳引用類型參數 (例如數組來解決這個問題)

關于數組我會在后面文章進行講解

class Main {public static void main(String[] args) {int[] arr = {10, 20};swap(arr);System.out.println("a = " + arr[0] + " b = " + arr[1]);}public static void swap(int[] arr) {int tmp = arr[0];arr[0] = arr[1];arr[1] = tmp;}
}

在這里插入圖片描述

五、沒有返回值的方法

方法的返回值是可選的. 有些時候可以沒有的.

代碼示例

class Main {public static void main(String[] args) {int a = 10;int b = 20;print(a, b);}public static void print(int x, int y) {System.out.println("x = " + x + " y = " + y);}
}

在這里插入圖片描述
另外, 如剛才的交換兩個整數的方法, 就是沒有返回值的.


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14894.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14894.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14894.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

初識java——javaSE (6)接口的實現——比較器與深拷貝,淺拷貝

文章目錄 前言一 比較器1.1 關于兩個對象的比較1.2 Comparable接口&#xff1a;1.3 Arrays.sort方法的實現1.4 比較器的實現Comparator接口 二 深拷貝與淺拷貝2.1 淺拷貝&#xff1a;Cloneable接口&#xff1a;clone方法&#xff1a;實現拷貝&#xff1a;淺拷貝&#xff1a; 2.…

Python3 筆記:Python的所有關鍵字

查看Python的關鍵字首先需要用import導入keyword模塊 import keyword # 查看Python的所有關鍵字&#xff0c;先用import導入keyword模塊 print(keyword.kwlist) 運行結果&#xff1a; [False, None, True, and, as, assert, async, await, break, class, continue, def, …

MQ如何保證消息不丟失

MQ如何保證消息不丟失 問題分析具體分析及解決方案RabbitMQ生產者RabbitMQ配置消費者 KafkaKafka配置消費者 問題分析 從Kafka和RabbitMQ進行分析&#xff0c;MQ消息丟失的情況有生產者推送消息時數據丟失&#xff0c;MQ中間件宕機情況下數據丟失&#xff0c;消費者消費時消息…

GoLand map中的并發問題——為什么會造成并發問題?該怎么解決?

GoLand map中的并發問題——為什么會造成并發問題&#xff1f;該怎么解決&#xff1f; 問題提出原因解析具體原因競態檢測器 如何解決并發問題呢&#xff1f;方法一 &#xff1a; 使用sync.Mutex方法二&#xff1a; 使用sync.Map我們首先了解一下sync.Map的常用方法&#xff1a…

2024.5.24.python.exercise

# python文件操作 # f open("打字版.txt", "a", encoding"UTF-8") # writer input("請輸入你想要寫入到文件的內容") # f.write(writer) # f.flush() # f.close() # f open("打字版.txt", "r", encoding"…

代碼隨想錄算法訓練營第三十九天 | 738.單調遞增的數字、968.監控二叉樹 (可以跳過)

監控二叉樹同樣的等代碼隨想錄刷完后&#xff0c;再回頭來看&#xff0c;先跳過 738.單調遞增的數字 代碼隨想錄 解題思路 例如&#xff1a;98&#xff0c;一旦出現strNum[i - 1] > strNum[i]的情況&#xff08;非單調遞增&#xff09;&#xff0c;首先想讓strNum[i - 1]--…

游戲引擎支持腳本編程的好處

哈嘍呀&#xff0c;大家好&#xff0c;淼淼又來和大家見面啦&#xff0c;咱們今天來聊聊游戲引擎&#xff0c;游戲引擎作為現代游戲開發的核心&#xff0c;它集成了圖形渲染、物理模擬、音頻處理、動畫系統、輸入輸出控制等多種復雜技術于一體&#xff0c;為開發者提供了一個高…

ASP+ACCESS基于WEB網上留言板

摘要 本文概述了ACCESS數據庫及其相關的一些知識&#xff0c;著重論述ACCESS數據庫和ASP的中間技術&#xff0c;構建一個簡單的留言板。具體的實現是構造一個留言板系統&#xff0c;能很方便的和同學溝通和交流。留言板具有功能強大、使用方便的特點。用戶以個人的身份進入&am…

瑞芯微RV1126——人臉識別源碼分析

本節內容主要分為3部分&#xff0c;第一部分是流程結構圖;第二部分為人臉識別代碼流程;第三部分為具體的代碼分析。 1.流程結構圖 2.人臉識別代碼流程 1、人臉數據的初始化&#xff1a; init_all_rockx_face_data();init_face_data();2、創建rtsp會話&#xff0c;這里包括發…

一個典型的分布式緩存系統是什么樣的?no.32

分布式 Redis 服務 由于本課程聚焦于緩存&#xff0c;接下來&#xff0c;我將以微博內的 分布式 Redis 服務系統為例&#xff0c;介紹一個典型的分布式緩存系統的組成。 微博的 Redis 服務內部也稱為 RedisService。RedisService 的整體架構如圖所示。主要分為Proxy、存儲、集…

產品推薦 | 基于Xilinx XCKU115的半高PCIe x8 硬件加速卡

一、板卡概述 本板卡系我公司自主研發&#xff0c;采用Xilinx公司的XCKU115-3-FLVF1924-E芯片作為主處理器&#xff0c;主要用于FPGA硬件加速。板卡設計滿足工業級要求。如下圖所示&#xff1a; 二、功能和技術指標 板卡功能 參數內容 主處理器 XCKU115-3-FLVF1924-E 板卡…

UE4/UE5像素流送云推流:多人訪問不穩定、畫面糊、端口占用多等

UE4/UE5想要實現網頁訪問&#xff0c;很多工程師會選擇guan方的像素流送。但這個技術要求在模型開發初期就接入。對于一些已有UE模型是無法進行流化的。雖然也可以解決新UE模型的網頁訪問問題&#xff0c;但在實際的應用中&#xff0c;點量云流也收到很多反饋說&#xff0c;使用…

netty-socketio 集群隨記

實現netty-socketio集群的方式 代碼實例 PostConstructpublic void subscribe() {pubSubStore.subscribe(PubSubType.DISPATCH, new PubSubListener<DispatchMessage>() {Overridepublic void onMessage(DispatchMessage message) {log.debug("subscribe: {}"…

Python爬取B站視頻:封裝一下

&#x1f4da;博客主頁&#xff1a;knighthood2001 ?公眾號&#xff1a;認知up吧 &#xff08;目前正在帶領大家一起提升認知&#xff0c;感興趣可以來圍觀一下&#xff09; &#x1f383;知識星球&#xff1a;【認知up吧|成長|副業】介紹 ??如遇文章付費&#xff0c;可先看…

大數據Hadoop之-工具HIVE(一)

大數據Hadoop之——數據倉庫Hive HIVE介紹Hive是基于Hadoop的一個數據倉庫(Data Aarehouse,簡稱數倉、DW),可以將結構化的數據文件映射為一張數據庫表,并提供類SQL查詢功能。是用于存儲、分析、報告的數據系統。 在Hadoop生態系統中,HDFS用于存儲數據,Yarn用于資源管理…

解釋Spring Bean的生命周期

Spring Bean的生命周期涉及到Bean的創建、配置、使用和銷毀的各個階段。理解這個生命周期對于編寫高效的Spring應用和充分利用框架的功能非常重要。下面是Spring Bean生命周期的主要步驟&#xff1a; 1. 實例化Bean Spring容器首先將使用Bean的定義&#xff08;無論是XML、注…

使用Golang調用騰訊云郵件模版發送郵件

文章目錄 一、騰訊云郵件模版創建1.1 發信域名配置1.2 發信地址設置1.3 發信模版設置 二、通過Golang發送郵件2.1 代碼示例2.2 代碼說明 三、常見問題3.1 UnsupportedRegion3.2 InvalidTemplateID 本文檔介紹了如何使用Golang編寫代碼&#xff0c;通過騰訊云郵件服務&#xff0…

【Linux】中的常見的重要指令(中)

目錄 一、man指令 二、cp指令 三、cat指令 四、mv指令 五、more指令 六、less指令 七、head指令 八、tail指令 一、man指令 Linux的命令有很多參數&#xff0c;我們不可能全記住&#xff0c;我們可以通過查看聯機手冊獲取幫助。訪問Linux手冊頁的命令是 man 語法: m…

白嫖免費圖床!CloudFlare R2太香了!

1 為啥要折騰搭建一個專屬圖床&#xff1f; 技術大佬寫博客都用 md 格式&#xff0c;要在多平臺發布&#xff0c;圖片就得有外鏈后續如博客遷移&#xff0c;國內博客網站如掘金&#xff0c;簡書&#xff0c;語雀等都做了防盜鏈&#xff0c;圖片無法遷移 2 為啥選擇CloudFlare…

對話太醫管家CEO徐晶:數字化技術正在為健康管理行業帶來新平衡丨數字思考者50人...

ITValue 鈦媒體特別專題策劃《數字思考者50人》&#xff1a;探訪中國深刻的數字化思考者群體。我們理解的“TechThinker”&#xff0c;涵蓋了中國數字化浪潮中的技術踐行者、政策制定者與投資決策者。在這場長達10年的乘風破浪中&#xff0c;每個人都在分享技術進步的果實&…