av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

零基礎學Java:不要閃,一文吃透Java中的方法

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

01、Java 中的方法是什么?

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

只有方法被調用時,它才會執(zhí)行。Java 中最有名的方法當屬 main() 方法,點擊下面的鏈接可以閱讀更多關于 main() 方法的知識點。

02、如何聲明方法?

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

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

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

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

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

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

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

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

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

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

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

02、方法有哪幾種?

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

1)預先定義方法

Java 提供了大量預先定義好的方法供我們調用,也稱為標準類庫方法,或者內置方法。比如說 String 類的 length()、equals()、compare() 方法,以及我們在初學 Java 階段最常用的 println() 方法,用來在控制臺打印信息。

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

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

我們可以通過集成開發(fā)工具查看預先定義方法的方法簽名,當我們把鼠標停留在 println() 方法上面時,就會顯示下圖中的內容:

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

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

2)用戶自定義方法

當預先定義方法無法滿足我們的要求時,就需要自定義一些方法,比如說,我們來定義這樣一個方法,用來檢查數(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.     }
  7. }

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

方法被定義好后,如何被調用呢?

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

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

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

03、什么是實例方法?

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

 
 
 
 
  1. /**
  2.  * @author 微信搜「沉默王二」,回復關鍵字 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.     public int add(int a, int b) {
  10.         return a + b;
  11.     }
  12. }

add() 方法是一個實例方法,需要創(chuàng)建 InstanceMethodExample 對象來訪問。

實例方法有兩種特殊類型:

  • getter 方法
  • setter 方法

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

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

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

04、什么是抽象方法?

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

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

當一個類繼承了抽象類后,就必須重寫抽象方法:

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

輸出結果如下所示:

 
 
 
 
  1. 重寫了抽象方法

重寫了抽象方法

“好了,三妹,關于 Java 中的方法就先說這么多吧?!鞭D動了一下僵硬的脖子后,我對三妹說。

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

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


網站欄目:零基礎學Java:不要閃,一文吃透Java中的方法
網頁網址:http://uogjgqi.cn/article/cdgdeps.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流