複製鏈接
請複製以下鏈接發送給好友

CLASS

(C++關鍵字)

鎖定
(英語:class)在面向對象編程中是一種面向對象計算機編程語言的構造,是創建對象的藍圖,描述了所創建的對象共同的屬性方法
類的更嚴格的定義是由某種特定的元數據所組成的內聚的包。它描述了一些對象的行為規則,而這些對象就被稱為該類的實例。類有接口和結構。接口描述瞭如何通過方法與類及其實例互操作,而結構描述了一個實例中數據如何劃分為多個屬性。類是與某個層[注 1]的對象的最具體的類型。類還可以有運行時表示形式(元對象),它為操作與類相關的元數據提供了運行時支持。
支持類的編程語言在支持與類相關的各種特性方面都多多少少有一些微妙的差異。大多數都支持不同形式的類繼承。許多語言還支持提供封裝性的特性,比如訪問修飾符。類的出現,為面向對象編程的三個最重要的特性(封裝性、繼承性多態性),提供了實現的手段。
中文名
外文名
class
類    型
關鍵字
標    準
ISO/ANSI C++11
公共類定義
public
友元定義
friend
私有類定義
private
重載運算符
operator
繼承類定義
protected
作用域
隨類型和定義位置而定

CLASS類的定義

在現實世界中,經常有屬於同一個類的對象。例如,某輛自行車只是世界上很多自行車中的一輛。在面向對象軟件中,也有很多共享相同特徵的不同的對象:矩形、僱用記錄、視頻剪輯等。可以利用這些對象的相同特徵為它們創建一個藍圖。對象的軟件藍圖稱為類。
類是定義同一類所有對象的變量方法的藍圖或原型。例如,可以創建一個定義包含當前檔位等實例變量的自行車類。這個類也定義和提供了實例方法(變檔、剎車)的實現。
實例變量的值由類的每個實例提供。因此,當創建自行車類以後,必須在使用之前對它進行實例化。當創建類的實例時,就創建了這種類型的一個對象,然後系統為類定義的實例變量分配內存。然後可以調用對象的實例方法實現一些功能。相同類的實例共享相同的實例方法。
除了實例變量和方法,類也可以定義類變量和類方法。可以從類的實例中或者直接從類中訪問類變量和方法。類方法只能操作類變量 - 不必訪問實例變量或實例方法。
系統在第一次在程序中遇到一個類時為這個類創建它的所有類變量的拷貝 - 這個類的所有實例共享它的類變量。

CLASS類和對象

對象和類的説明其實很相似。實際上,類和對象之間的差別經常是一些困惑的起源。在現實世界中很明顯,類不是它描述的對象 - 自行車的藍圖不是自行車。但是在軟件中就有點難區分類和對象。這部分是由於軟件對象只是現實世界的電子模型或抽象概念。但是也由於很多人用“對象”指類和它們的實例這兩者 [1] 

CLASS抽象類

抽象類被定義為永遠不會也不能被實例化為具體的對象。它往往用於定義一種抽象上的概念,在類的繼承關係中它往往被定義在較上層的位置。在程序設計的實踐活動中,抽象類與接口存在類似的地方,即它更偏重於對共通的方法和屬性進行規約。但與接口存在一個非常大的差異則在於,抽象類往往可以規約一個共同的方法和屬性時提供一個對他們的實現。
以現實世界為例:“水果”可以算作一個抽象類,而“蘋果”、“香蕉”則可以作為它的派生類。區別在於,“水果”是個概念,它不會有實例,但是“蘋果”、“香蕉”則肯定會有實例 [2] 

CLASS類的好處

對象提供了模型化和信息隱藏的好處。類提供了可重複使用性的好處。自行車製造商一遍一遍地重用相同的藍圖來製造大量的自行車。軟件程序員用相同的類,即相同的代碼一遍一遍地創建對象。
參考資料