在編碼中,方法和函數之間有什麼區別

已發表: 2018-09-21

編碼術語

在編程中,有很多不同的術語用於描述同一件事,也有一些術語似乎指的是同一件事,但實際上並非如此。 讓它更加混亂。 某些術語的使用方式不同,具體取決於您所談論的語言類型,甚至在從一種語言轉換到另一種相同類型的語言時。 因此,諸如“方法”、“函數”、“接口”或“抽像類”之類的術語可能會讓某些人感到非常困惑,因為它們在一種情況下可能意味著一件事,但在另一種情況下則完全不同。

OOP 方法概述

方法本質上是對指定對象執行的逐步過程。 方法僅用於面向對象的編程語言,如 C++。 本質上,方法要么可以改變通過該方法的對象的特性,要么該方法可以基於通過它的對象的預先存在的特性來執行某個過程。 有時,一個方法甚至可以通過既不影響通過它的對像也不會被對象的現有特徵改變的代碼運行。 但這不太常見,也不是處理方法的推廣方式。

閱讀——選擇哪個 JavaScript 框架

程序編碼中的功能

另一方面,函數是一個更通用的術語,它指的是一個接受多個輸入並返回一些值的過程。 令人困惑的是,一個函數和一個方法在編程時聽起來好像它們會做同樣的事情或引用相同類型的過程,但事實並非如此。 函數與對象無關,並且基本上用於所有非面向對象的高級語言中。 另一方面,方法與對象相關聯,並且該術語僅在處理對像或過程位於類中時使用。 因此,函數根據給定的輸入返回值,而方法要么改變對象的特性,要么根據對象的預先存在的特性返回值。

編碼接口和抽像類

類似於函數和方法之間的混淆。 接口和抽像類之間有很多混淆。 但是,與函數和方法不同,接口和抽像類有很多共同點,而且它們的特性很容易混淆。 區分兩者的最簡單方法是了解接口僅存在於面向對象的編程語言中。 而抽像類幾乎存在於所有高級語言中。

深入的接口

接口本質上是您創建的一個基礎,它解釋了類之間的所有相似之處。 因此,假設您想創建不同的對象,但它們都是動物。 所以,人類、猿類和黑猩猩。 顯然,這三種動物有很多共同點,定義所有這些相似之處是明智的,因此您可以確保它們在每個類中都實現。 例如,每個人都有一個頭,四個肢體,一個嘴,一個鼻子,一個舌頭等。

因此,在界面中,您定義了這些特徵,因為您在界面中定義了它們。 當每個類實現接口時,它們必須通過接口中定義的方法來定義和初始化這些特性。 否則,代碼將無法運行。 使用接口而不是抽像類的主要原因是每種動物都具有相同的特徵。 但每種動物的實施方式都不同。 例如,所有的黑猩猩。 人類和猿類都有鼻子,但它們的寬度、長度和用途可能都略有不同。 因此,這些差異是在各個類中定義的。 但是他們有鼻子的事實是在界面中定義的。

閱讀 – Laravel 成為 2018 年最佳 PHP 框架的原因

如何使用抽像類

抽像類與接口完全一樣。 然而,與接口不同的是,方法和函數實際上可以被定義初始化,但它們不是必須的。 最重要的是,它們不是實現抽像類的類,而是使抽像類成為超類。 與接口相比,這實際上是抽像類的一個主要缺點,因為一個類可以實現任意數量的接口,但它們只能有一個超類,這意味著一個類只能使用一個抽像類,但可以使用多個接口。

抽像類很棒。 但是,如果有一些相同的特性具有相同的實現方式。 但是,如果還有一些跨對象具有不同的實現。 例如,如果您有兩個類,男性和女性,並且想要定義兩者之間的相似性,那麼最好使用抽像類。 為什麼? 因為性別之間的某些特徵是相同的,並且以完全相同的方式實現。 例如,嘴巴大小相同,用途相同; 兩性之間的眼睛大小相同,功能相同,等等。

因此,對於這些特性,定義它們的函數或方法可以在抽像類中進行初始化。 然而,某些特徵,如臀部或眉毛,兩性都有。 但兩者的這些特徵有很大不同。 因此,抽像類不會初始化定義這些特徵的方法或函數。 並將其留給子類。

概括

希望這些解釋不會太混亂或冗長。 如果您是編程新手,如果您仍然感到困惑,請不要擔心。 您可以使用大量可訪問的資源來了解編程的基礎知識以及某些術語之間的細微差別。

非常重要的一點是,如果你想成為一名專業的程序員。 必須同時學習過程和麵向對象編程 (OOP) 概念。 確實。 許多軟件工程師在進行 OOP 編碼之前使用統一模型語言將項目或應用程序需求映射到對象和圖表。 有很多用於學習軟件工程的在線資源。 對於青少年和高中生,高中技術服務提供各種實踐培訓。 對於成人和專業人士,Coding Bootcamps 學院提供了許多基礎的高級編程課程,重點是程序和 OOP 編碼。

關於作者

Matt Zand 是一名程序員、商人、IT 顧問和作家。 他是WEG2G集團的創始人和所有者。 他也是 DC Web Makers 的創始人。 他的愛好是遠足、騎自行車、戶外活動、旅遊和登山。