自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Java 中使用方法

開發(fā)
在這個簡便的教程中,我們可以了解到 Java 中方法的定義,如何使用方法,以及何時使用方法。

Java 中的方法(在許多其他編程語言中稱為“函數(shù)”)是被組合在一起并標記為可重用的一塊代碼。方法很有用,因為它們允許你在不重寫相同代碼的情況下,執(zhí)行相同的操作或一系列操作,這不僅意味著你的工作量減少,還意味著出現(xiàn)問題時需要維護和調(diào)試的代碼減少。

方法存在于類中,因此標準 Java 樣板代碼適用:

package com.opensource.example;public class Example {  // 在此寫代碼}

在這樣一個簡單的單文件應用程序中,包定義并不是絕對必要的,但它是一個很好的習慣,而且大多數(shù) IDE 都強制執(zhí)行它。

默認情況下,Java 會尋找在類中運行的 ??main?? 方法。方法可以是公有的或私有的,也可以是靜態(tài)的或非靜態(tài)的,但 ??main?? 方法必須是公有的、靜態(tài)的,Java 編譯器才能識別和使用它。當方法是公有的時,它可以從類外部執(zhí)行。要在程序啟動時調(diào)用 ??Example?? 類,其 ??main?? 方法必須是可訪問的,因此將其設置為 ??public??。

下面是兩個方法的簡單演示:一個 ??main?? 方法在調(diào)用 ??Example?? 類時默認執(zhí)行,另一個 ??report?? 方法接受 ??main?? 的輸入并執(zhí)行簡單操作。

為了模擬任意數(shù)據(jù)輸入,我使用了 ??if??-??then?? 語句,該語句根據(jù)你啟動應用程序的時間在兩個字符串之間進行選擇。換句話說,??main?? 方法首先設置一些數(shù)據(jù)(在現(xiàn)實生活中,這些數(shù)據(jù)可以來自用戶輸入,也可以來自應用程序其他地方的其他方法),然后 “調(diào)用” ??report??方法,將處理后的數(shù)據(jù)作為輸入提供:

package com.opensource.example;public class Example {  public static void main(String[] args) {    // 生成一些數(shù)據(jù)    long myTime = System.currentTimeMillis();    String weather;    if ( myTime%2 == 0 ) {      weather = "party";    } else {      weather = "apocalypse";    }    // 調(diào)用其他方法    report(weather);  }  private static void report(String day) {    System.out.printf("Welcome to the zombie %s\n", day);  }}

運行代碼:

$ java ./Example.javaWelcome to the zombie apocalypse$ java ./Example.javaWelcome to the zombie party

請注意,同一 ??report?? 方法有兩個不同的結(jié)果。當然,在這個簡單的演示中,不需要第二種方法。模擬數(shù)據(jù)生成的 ??if??-??then?? 語句可能生成了相同的結(jié)果。但是,當一個方法執(zhí)行一項復雜的任務時,比如將圖像調(diào)整為縮略圖,然后使用調(diào)整后的圖像在屏幕上生成小部件,那么附加組件的“費用”就很有意義了。

何時使用 Java 方法

很難知道何時使用方法,何時只將數(shù)據(jù)發(fā)送到 ??Java 流?? 或循環(huán)中。如果你面臨這個決定,答案通常是使用一種方法。原因如下:

  • 方法開銷少。它們不會給代碼增加處理開銷。
  • 方法減少代碼的行數(shù)。
  • 方法是特定的。查找名為??resizeImage?? 的方法通常比查找隱藏在從驅(qū)動器加載圖像的函數(shù)中某個循環(huán)中的代碼更容易。
  • 方法是可重用的。當你第一次編寫方法時,你可能會認為它只對應用程序中的一個任務有用。然而,隨著應用程序的編寫,你可能會發(fā)現(xiàn)自己正在使用一種你認為“已完成”的方法。

函數(shù)式編程與面向?qū)ο缶幊?/h3>

函數(shù)式編程利用方法作為執(zhí)行任務的主要構(gòu)造。創(chuàng)建一個方法,該方法接受一種數(shù)據(jù),處理該數(shù)據(jù),并輸出新數(shù)據(jù)。將許多方法串在一起,你就擁有了一個動態(tài)且功能強大的應用程序。像 C 和 ??Lua?? 這樣的編程語言就是這種編碼風格的例子。

用代碼完成任務的另一種方式是 Java 使用的面向?qū)ο竽P汀T诿嫦驅(qū)ο缶幊讨?,方法是模板的組成部分。你可以創(chuàng)建對象,而不是將數(shù)據(jù)從一個方法發(fā)送到另一個方法,并可以通過使用它們的方法來更改它們。

從面向?qū)ο蟮慕嵌葋砜?,這是一個簡單的 “僵尸末日” 演示程序。在函數(shù)方法中,我使用一種方法生成數(shù)據(jù),另一種方法使用該數(shù)據(jù)執(zhí)行操作。面向?qū)ο蟮牡葍r物是具有表示工作單元的類。這個示例應用程序向用戶顯示一條當天的消息,宣布這一天會有僵尸派對或是僵尸末日。編寫一個“天”對象,然后查詢該對象以了解其特性是有意義的。作為演示面向?qū)ο髽?gòu)造的不同方面的借口,新的示例應用程序還將統(tǒng)計有多少僵尸出現(xiàn)在派對上(或末日)。

Java 為每個類使用一個文件,因此要創(chuàng)建的第一個文件是 ??Day.Java??,它用作 ??Day?? 對象:

package com.opensource.example;import java.util.Random;// 類public class Day {    public static String weather;    public int count;// 構(gòu)造方法  public Day() {    long myTime = System.currentTimeMillis();    if ( myTime%2 == 0 ) {      weather = "paradise";    } else {      weather = "apocalypse";    }  }// 方法  public String report() {      return weather;  }  public int counter() {    Random rand = new Random();    count = count + rand.nextInt(100);    return(count);    }}

在“類”部分中,創(chuàng)建了兩個域:天象 ??weather?? 和計數(shù) ??count??。??weather?? 是靜態(tài)的。在一天的過程中(在這種假想的情況下),??weather?? 不會改變。要么是派對 ??paradise??,要么是末日 ??apocalypse??,持續(xù)了一整天。然而,僵尸的數(shù)量在一天中會增加。

在“構(gòu)造方法”部分,確定當天的天象。它是作為一個 ??構(gòu)造方法?? 完成的,因為它只在類最初被調(diào)用時發(fā)生一次。

在“方法”部分,??report?? 方法只返回由構(gòu)造方法確定和設置的天象報告。然而,??counter?? 方法生成一個隨機數(shù),并將其添加到當前僵尸計數(shù)中。

換句話說,這個類做了三件不同的事情:

  • 表示應用程序定義的“天”。
  • 設置當天不變的天氣報告。
  • 設置一天中不斷增加的僵尸數(shù)量。

要使用這所有,請創(chuàng)建第二個文件:

package com.opensource.example;public class Example {  public static void main(String[] args) {    Day myDay = new Day();    String foo = myDay.report();    String bar = myDay.report();    System.out.printf("Welcome to a zombie %s\n", foo);    System.out.printf("Welcome to a zombie %s\n", bar);    System.out.printf("There are %d zombies out today.\n", myDay.counter());    System.out.printf("UPDATE: %d zombies. ", myDay.counter());    System.out.printf("UPDATE: %d zombies. ", myDay.counter());  }}

因為現(xiàn)在有兩個文件,所以使用 Java IDE 運行代碼是最簡單的,但是如果不想使用 IDE,可以創(chuàng)建自己的 ??JAR 文件??。運行代碼以查看結(jié)果:

Welcome to a zombie apocalypseWelcome to a zombie apocalypseThere are 35 zombies out today.UPDATE: 67 zombies. UPDATE: 149 zombies.

無論調(diào)用 ??report?? 方法多少次,??weather?? 都保持不變,但調(diào)用 ??counter?? 方法的次數(shù)越多,僵尸的數(shù)量就會增加。

Java 方法

方法(或函數(shù))是編程中的重要組成。在 Java 中,你可以將它們作為函數(shù)式編程的單個類的一部分使用,也可以在面向?qū)ο缶幊痰念愔g使用它們。兩種類型的編程對于解決同一個問題有不同的視角,因此沒有對與錯之分。通過反復嘗試,積累一點經(jīng)驗,你會知道哪一個最適合某個特定的問題。

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2019-04-23 15:20:26

JavaScript對象前端

2021-09-10 10:30:22

Java代碼

2021-01-28 05:14:40

C#接口簽名

2011-08-10 09:31:41

Hibernateunion

2021-03-09 07:27:40

Kafka開源分布式

2015-08-27 09:46:09

swiftAFNetworkin

2021-06-09 09:36:18

DjangoElasticSearLinux

2022-05-17 08:25:10

TypeScript接口前端

2022-06-23 08:00:53

PythonDateTime模塊

2024-01-18 08:37:33

socketasyncio線程

2019-09-16 19:00:48

Linux變量

2014-07-02 09:47:06

SwiftCocoaPods

2020-04-09 10:18:51

Bash循環(huán)Linux

2024-09-06 11:34:15

RustAI語言

2020-11-30 11:55:07

Docker命令Linux

2011-08-25 09:55:27

2024-12-03 08:00:00

2012-03-08 10:18:33

JavaOracle

2025-03-21 09:58:59

Python數(shù)據(jù)類型安全

2023-12-01 09:18:27

AxiosAxios 庫
點贊
收藏

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