成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

零基礎(chǔ)學(xué)Java:不要閃,一文吃透 Java 中的方法

開發(fā) 后端
“這一節(jié)我們來了解一下 Java 中的方法——什么是方法?如何聲明方法?方法有哪幾種?什么是實(shí)例方法?什么是抽象方法?”我笑著對三妹說,“我開始了啊,你不要閃啊。”

[[353582]]

 “這一節(jié)我們來了解一下 Java 中的方法——什么是方法?如何聲明方法?方法有哪幾種?什么是實(shí)例方法?什么是抽象方法?”我笑著對三妹說,“我開始了啊,你不要閃啊。”

01、Java 中的方法是什么?

方法用來實(shí)現(xiàn)代碼的可重用性,我們編寫一次方法,并多次使用它。通過增加或者刪除方法中的一部分代碼,就可以提高整體代碼的可讀性。

只有方法被調(diào)用時(shí),它才會(huì)執(zhí)行。Java 中最有名的方法當(dāng)屬 main() 方法,點(diǎn)擊下面的鏈接可以閱讀更多關(guān)于 main() 方法的知識(shí)點(diǎn)。

02、如何聲明方法?

方法的聲明反映了方法的一些信息,比如說可見性、返回類型、方法名和參數(shù)。如下圖所示。

訪問權(quán)限:它指定了方法的可見性。Java 提供了四種訪問權(quán)限修飾符:

  • public:該方法可以被所有類訪問。
  • private:該方法只能在定義它的類中訪問。
  • protected:該方法可以被同一個(gè)包中的類,或者不同包中的子類訪問。
  • default:該方法如果沒有使用任何訪問權(quán)限修飾符,Java 默認(rèn)它使用 default 修飾符,該方法只能被同一個(gè)包中類可見。

返回類型:方法返回的數(shù)據(jù)類型,可以是基本數(shù)據(jù)類型、對象和集合,如果不需要返回?cái)?shù)據(jù),則使用 void 關(guān)鍵字。

方法名:方法名最好反應(yīng)出方法的功能,比如,我們要?jiǎng)?chuàng)建一個(gè)將兩個(gè)數(shù)字相減的方法,那么方法名最好是 subtract。

方法名最好是一個(gè)動(dòng)詞,并且以小寫字母開頭。如果方法名包含兩個(gè)以上單詞,那么第一個(gè)單詞最好是動(dòng)詞,然后是形容詞或者名詞,并且要以駝峰式的命名方式命名。比如:

  • 一個(gè)單詞的方法名:sum()
  • 多個(gè)單詞的方法名:stringComparision()

一個(gè)方法可能與同一個(gè)類中的另外一個(gè)方法同名,這被稱為方法重載。

參數(shù):參數(shù)被放在一個(gè)圓括號(hào)內(nèi),如果有多個(gè)參數(shù),可以使用逗號(hào)隔開。參數(shù)包含兩個(gè)部分,參數(shù)類型和參數(shù)名。如果方法沒有參數(shù),圓括號(hào)是空的。

方法簽名:每一個(gè)方法都有一個(gè)簽名,包括方法名和參數(shù)。

方法體:方法體放在一對花括號(hào)內(nèi),把一些代碼放在一起,用來執(zhí)行特定的任務(wù)。

02、方法有哪幾種?

方法可以分為兩種,一種叫預(yù)先定義方法,一種叫用戶自定義方法。

1)預(yù)先定義方法

Java 提供了大量預(yù)先定義好的方法供我們調(diào)用,也稱為標(biāo)準(zhǔn)類庫方法,或者內(nèi)置方法。比如說 String 類的 length()、equals()、compare() 方法,以及我們在初學(xué) Java 階段最常用的 println() 方法,用來在控制臺(tái)打印信息。

  1. /** 
  2.  * @author 微信搜「沉默王二」,回復(fù)關(guān)鍵字 PDF 
  3.  */ 
  4. public class PredefinedMethodDemo { 
  5.     public static void main(String[] args) { 
  6.         System.out.println("沉默王二,一枚有趣的程序員"); 
  7.     } 

在上面的代碼中,我們使用了兩個(gè)預(yù)先定義的方法,main() 方法是程序運(yùn)行的入口,println() 方法是 PrintStream 類的一個(gè)方法。這些方法已經(jīng)提前定義好了,所以我們可以直接使用它們。

我們可以通過集成開發(fā)工具查看預(yù)先定義方法的方法簽名,當(dāng)我們把鼠標(biāo)停留在 println() 方法上面時(shí),就會(huì)顯示下圖中的內(nèi)容:

println() 方法的訪問權(quán)限修飾符是 public,返回類型為 void,方法名為 println,參數(shù)為 String x,以及 Javadoc(方法是干嘛的)。

預(yù)先定義方法讓編程變得簡單了起來,我們只需要在實(shí)現(xiàn)某些功能的時(shí)候直接調(diào)用這些方法即可,不需要重新編寫。

2)用戶自定義方法

當(dāng)預(yù)先定義方法無法滿足我們的要求時(shí),就需要自定義一些方法,比如說,我們來定義這樣一個(gè)方法,用來檢查數(shù)字是偶數(shù)還是奇數(shù)。

  1. public static void findEvenOdd(int num) { 
  2.     if (num % 2 == 0) { 
  3.         System.out.println(num + " 是偶數(shù)"); 
  4.     } else { 
  5.         System.out.println(num + " 是奇數(shù)"); 
  6.     } 

方法名叫做 findEvenOdd,訪問權(quán)限修飾符是 public,并且是靜態(tài)的(static),返回類型是 void,參數(shù)有一個(gè)整形(int)的 num。方法體中有一個(gè) if else 語句,如果 num 可以被 2 整除,那么就打印這個(gè)數(shù)字是偶數(shù),否則就打印這個(gè)數(shù)字是奇數(shù)。

方法被定義好后,如何被調(diào)用呢?

  1. /** 
  2.  * @author 微信搜「沉默王二」,回復(fù)關(guān)鍵字 PDF 
  3.  */ 
  4. public class EvenOddDemo { 
  5.     public static void main(String[] args) { 
  6.         findEvenOdd(10); 
  7.         findEvenOdd(11); 
  8.     } 
  9.  
  10.     public static void findEvenOdd(int num) { 
  11.         if (num % 2 == 0) { 
  12.             System.out.println(num + " 是偶數(shù)"); 
  13.         } else { 
  14.             System.out.println(num + " 是奇數(shù)"); 
  15.         } 
  16.     } 

main() 方法是程序的入口,并且是靜態(tài)的,那么就可以直接調(diào)用同樣是靜態(tài)方法的 findEvenOdd()。

當(dāng)一個(gè)方法被 static 關(guān)鍵字修飾時(shí),它就是一個(gè)靜態(tài)方法。換句話說,靜態(tài)方法是屬于類的,不屬于類實(shí)例的(不需要通過 new 關(guān)鍵字創(chuàng)建對象來調(diào)用,直接通過類名就可以調(diào)用)。

03、什么是實(shí)例方法?

沒有使用 static 關(guān)鍵字修飾,但在類中聲明的方法被稱為實(shí)例方法,在調(diào)用實(shí)例方法之前,必須創(chuàng)建類的對象。

  1. /** 
  2.  * @author 微信搜「沉默王二」,回復(fù)關(guān)鍵字 PDF 
  3.  */ 
  4. public class InstanceMethodExample { 
  5.     public static void main(String[] args) { 
  6.         InstanceMethodExample instanceMethodExample = new InstanceMethodExample(); 
  7.         System.out.println(instanceMethodExample.add(1, 2)); 
  8.     } 
  9.  
  10.     public int add(int a, int b) { 
  11.         return a + b; 
  12.     } 

add() 方法是一個(gè)實(shí)例方法,需要?jiǎng)?chuàng)建 InstanceMethodExample 對象來訪問。

實(shí)例方法有兩種特殊類型:

  • getter 方法
  • setter 方法

getter 方法用來獲取私有變量(private 修飾的字段)的值,setter 方法用來設(shè)置私有變量的值。

  1. /** 
  2.  * @author 沉默王二,一枚有趣的程序員 
  3.  */ 
  4. public class Person { 
  5.     private String name
  6.     private int age; 
  7.     private int sex; 
  8.  
  9.     public String getName() { 
  10.         return name
  11.     } 
  12.  
  13.     public void setName(String name) { 
  14.         this.name = name
  15.     } 
  16.  
  17.     public int getAge() { 
  18.         return age; 
  19.     } 
  20.  
  21.     public void setAge(int age) { 
  22.         this.age = age; 
  23.     } 
  24.  
  25.     public int getSex() { 
  26.         return sex; 
  27.     } 
  28.  
  29.     public void setSex(int sex) { 
  30.         this.sex = sex; 
  31.     } 

getter 方法以 get 開頭,setter 方法以 set 開頭。

04、什么是抽象方法?

沒有方法體的方法被稱為抽象方法,它總是在抽象類中聲明。這意味著如果類有抽象方法的話,這個(gè)類就必須是抽象的。可以使用 atstract 關(guān)鍵字創(chuàng)建抽象方法和抽象類。

  1. /** 
  2.  * @author 微信搜「沉默王二」,回復(fù)關(guān)鍵字 PDF 
  3.  */ 
  4. abstract class AbstractDemo { 
  5.     abstract void display(); 

當(dāng)一個(gè)類繼承了抽象類后,就必須重寫抽象方法:

  1. /** 
  2.  * @author 微信搜「沉默王二」,回復(fù)關(guān)鍵字 PDF 
  3.  */ 
  4. public class MyAbstractDemo extends AbstractDemo { 
  5.     @Override 
  6.     void display() { 
  7.         System.out.println("重寫了抽象方法"); 
  8.     } 
  9.  
  10.     public static void main(String[] args) { 
  11.         MyAbstractDemo myAbstractDemo = new MyAbstractDemo(); 
  12.         myAbstractDemo.display(); 
  13.     } 

輸出結(jié)果如下所示:

  1. 重寫了抽象方法 

重寫了抽象方法

“好了,三妹,關(guān)于 Java 中的方法就先說這么多吧。”轉(zhuǎn)動(dòng)了一下僵硬的脖子后,我對三妹說。

“好的,二哥,你辛苦了。”

本文轉(zhuǎn)載自微信公眾號(hào)「 沉默王二」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系 沉默王二公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 沉默王二
相關(guān)推薦

2024-08-09 08:41:14

2020-10-20 14:50:26

Python數(shù)字字符串

2018-08-31 14:51:30

人工智能深度學(xué)習(xí)機(jī)器學(xué)習(xí)

2020-11-20 09:36:43

Java對象

2021-01-13 14:55:54

JavaPython開發(fā)

2025-02-03 07:00:00

Java接口工具

2025-02-27 08:05:47

2024-08-26 08:58:50

2016-11-25 13:05:18

2021-04-27 11:28:21

React.t事件元素

2024-09-18 13:57:15

2025-01-13 12:00:00

反射Java開發(fā)

2025-04-28 01:22:45

2023-08-27 21:29:43

JVMFullGC調(diào)優(yōu)

2019-11-13 09:27:55

Web密碼學(xué)數(shù)據(jù)

2023-05-31 13:32:08

Javalambda函數(shù)

2022-04-26 06:04:11

零信任網(wǎng)絡(luò)安全

2022-09-27 13:34:49

splice零拷貝原理

2020-02-21 14:35:57

JavaScript繼承前端

2021-03-23 17:21:48

Java編程開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久看看 | 一区二区中文字幕 | 99亚洲| 久久新 | 亚洲一区二区视频在线播放 | 国产一区二区三区 | 日韩在线免费视频 | 免费视频一区二区 | 日韩欧美中文字幕在线观看 | 免费色网址 | 国产精品成人一区 | 亚洲国产精品99久久久久久久久 | 美美女高清毛片视频免费观看 | 日本精品视频在线 | 日韩av一区二区在线观看 | 国产91丝袜 | 久久在线精品 | 亚洲第一成人av | 一级黄色片日本 | 99re热精品视频 | 国产精品久久精品 | 一区二区久久 | 日本人爽p大片免费看 | 国产羞羞视频在线观看 | 国产精品av久久久久久毛片 | 亚洲欧洲精品成人久久奇米网 | 九九九久久国产免费 | 日本高清在线一区 | 亚洲永久精品国产 | 中日韩欧美一级片 | 精品久久影院 | 午夜一区二区三区在线观看 | 一级大黄色片 | 亚洲精品中文字幕在线 | 亚洲欧美激情国产综合久久久 | 成人在线视频免费观看 | 久久乐国产精品 | 久久噜噜噜精品国产亚洲综合 | 日本特黄a级高清免费大片 特黄色一级毛片 | 免费观看一级黄色录像 | 国产精品国产成人国产三级 |