物件導向程式設計中關於類的行為的理解

2021-03-20 04:36:38 字數 5276 閱讀 7421

1樓:尼拉卓爾

首先,我覺得你應該先理清「類」和「物件」的區別

1、行為一般都是主觀的概念,但是我們設計的物件一般都不具備主動性,需要外界因素促發行為,這樣是不是很矛盾?

to1:一點都不矛盾,行為可以視為物件的能力,有這個「行為」,實際上就是說這個物件有這種「行為能力」,它有能力有許可權這麼做,而外界因素的促發一般而言都是呼叫和傳參,也就是我們「讓它這麼做」。換言之,有這個能力不一定要這麼做,沒有這個能力你怎麼觸發都沒用。

例:我寫個account類,如果不給他login的行為,那麼它就是一個名單表而已,如果給了它login的行為,那麼我們可以通過呼叫此行為使得賬號登入。

反之,如果我們不在account類中寫一個login行為的話,那麼造成的後果是我們必須在每一個需要登入賬戶的地方寫上同樣的一段login**,這就造成了**的混亂

-----我是蛋疼的分界線-----

2、其次,雖說類都具備這兩個特徵,但是,似乎某些類只是用來被人呼叫,作為一種最底層的類,它似乎不需要任何行為。但是為什麼在有些分析中確為它加上了行為?(如圖:

賬戶類應該就是一個名單表之類的東西,atm類有登陸賬戶的操作行為這個還能理解,但是賬戶名單也有登陸行為似乎有點不合適)對於專案中類的建立到底應該如何解決?

to2:賬戶登入和登入賬戶完全是兩個概念。如果按照例子中的內容我會這麼寫

account類的login行為:將name和password在資料庫中進行比對,如果成功則修改登入狀態為1,並讀取各種資料例如存款金額神馬的;如果失敗返回-1(進一步擴充套件的話還可以設定一個登入失敗次數的計數器,累計達到x之後就禁止登入神馬的)。

atm類的loginaccount行為:從ui獲取一個name和一個password,new一個account物件,set好這個物件的name和password屬性,然後呼叫這個物件的login行為。再根據呼叫的結果作出反應。

--------神馬的分割線再次出現------

總而言之,我覺得你的問題主要出在混淆了「類」和「物件」的區別

從你會說出「賬戶類應該就是一個名單表之類的東西」就可以看出來,其實真正的名單表在資料庫裡,賬戶類的作用應該體現為「賬戶是否存在」和「對賬戶能進行什麼操作」

特別是後者的概念,所謂的底層類,只能說明它的行為中沒有對其他的類的物件進行操作,它的作用只是在於溝通程式與資料庫或者對自身的屬性進行操作罷了

在物件導向的學習中,儘可能的,把對物件自身屬性的操作封在物件本身的行為中,如果讓a物件可以修改b物件的屬性的話,會發生很恐怖的事情,就是整個程式的大混亂

2樓:匿名使用者

我的理解是:類是一些具有共同屬性物件例項抽象出來的概念,就好比在c語言中自定的資料型別。主要將屬性的狀態、行為打包封裝形成一個整體,也就是類,這也就好像你自定義了一個新的資料型別。

在用的時候例項化一個物件,也就好像c語言中定義了一個變數。不過變數一般只有值的操作,而物件卻可以對其狀態進行值操作,還可以對其行為進行控制,這也是物件導向的好處。其實c語言中的函式呼叫就很類似於物件的概念,把資料和操作寫成一個函式體這不正是相當於一個物件嗎,不過函式體更偏重於操作而已。

至於為何非得具備兩個行為特徵,我想一樓大蝦已分析的很詳細了,希望對你有幫助

程式設計中的類、物件導向怎麼理解?

3樓:匿名使用者

類是一組有共同特徵、行為的物件(注意是一組而不是一個)。型別是類的強制規定(通常我們不區分類和型別,但是它們的確是有區別的)。物件是一個存在於時間或空間的實體,可以是一個分子、電腦螢幕上一個字元、一個叫張三或者一個過程。

《c++程式設計思想》中有一句話很經典:萬物皆物件。世界由大量無法統計的物件構成,我們的程式也是,在編寫程式時我們不能隨便創造物件,而是創造出一些適合問題的物件。

比如設計汽車時你不應該去考慮原子,而應該去考慮引擎、輪胎等物件。物件導向不光是某些人說的那樣只有封裝、繼承、多型,它還包括許多內容。網上有人說物件導向思想違背併發的思想,這種說法是錯的,因為併發是物件導向的一個基本特徵(可能那個人沒注意這個事實)。

正如某個人說的那樣:物件導向這個術語已被人們用爛了。所以希望你在博覽的同時慎取,尤其是網上的。

4樓:灬諾茲多姆灬

對應你見到的一切. 用計算機語言描述而已.

物件導向程式設計中什麼是類類有幾種特性

5樓:一刀程式設計

什麼是類:

具有相同或相似性質的物件的抽象就是類。

類具有屬性,它是物件的狀態的抽象,用資料結構來描述類的屬性。

類具有操作,它是物件的行為的抽象,用操作名和實現該操作的方法來描述。

類的特性:

1、封裝:封裝是物件導向的特徵之一,是物件和類概念的主要特性2、繼承:物件導向程式設計(oop)的一個主要功能就是繼承。

繼承是指這樣一種能力:可以使用現有類的所有功能,並在無需重新編寫原來類的情況下對這些功能進行擴充套件。

3、多型:多型性是允許將父物件設定成和一個或更多的子物件相等的技術,賦值之後父物件就可以根據當前的賦值給它的子物件的特性以不同的方式運作。簡單地說,就是一句話:

允許將子類型別執行的指標賦值給父類型別的指標。

怎麼理解物件導向程式設計?

6樓:

我覺得沒必要去深究他的意思。

按我的理解,物件導向程式設計,主要是將我們實際生活中的物件經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個物件。這樣使得程式更容易結構化、抽象起來更方便。

物件導向技術最初是從物件導向的程式設計開始的, 物件導向程式設計並不困難

它的出現以60年代simula語言為標誌。80年代中後期,物件導向程式設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮物件導向的開發問題。這就是九十年代以microsoft visual系列oop軟體的流行的背景。

傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規範,處理資料齊全,使用者能全面完整地其業務需求。 傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和複用能力很差。 物件是對現實世界實體的模擬,因面能更容易地理解需求,即使使用者和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。

區別物件導向的開發和傳統過程的開發的要素有:物件識別和抽象、封裝、多型性和繼承。 物件(object)是一個現實實體的抽象,由現實實體的過程或資訊牲來定義。

一個物件可被認為是一個把資料(屬性)和程式(方法)封裝在一起的實體,這個程式產生該物件的動作或對它接受到的外界訊號的反應。這些物件操作有時稱為方法。物件是個動態的概念,其中的屬性反映了物件當前的狀態。

類(class)用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。

由上分析不難看出,儘管oop技術更看中使用者的物件模型,但其目的都是以程式設計為目的的,而不是以使用者的資訊為中心的,總想把使用者的資訊納入到某個使用者不感興趣的「程式物件」中。

如何理解物件導向程式設計中的類和物件

7樓:匿名使用者

一切事物皆物件,通過物件導向的方式,將現實世界的事物抽象成物件,現實世界中的關係抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模。

我們知道,編寫程式的目的是為了解決現實生活中的問題,程式設計的思維方式也應該貼近現實生活的思維方式。物件導向的程式設計方式就是為了實現上述目的二出現的。它使得程式設計工作更直觀,更易理解。

需要注意的是這裡說的程式設計不光是coding還包括了設計的過程也是物件導向的

程式設計中的類是什麼?

8樓:千鋒教育

類就是表示有同一特徵的事物,比如學生類、動物類。定義一個類後,在「」中間寫這類東西所擁有的屬性及可以實現的行為,比如說

學生類student()

9樓:匿名使用者

比如說蘋果是一個類吧,他有屬性和方法,屬性呢如顏色、重量等,方法呢如榨汁等。看看程式設計的例項就明白了。

10樓:匿名使用者

就是一個物件的模子,可以批量生產物件。

在程式設計中的物件導向的含義是什麼呢? 5

11樓:沉碗裡

物件導向是相對於程序導向而言的,物件導向相比程序導向有很多優點。比如,物件導向的一個特點就是繼承,只要我們的程式用物件導向的方法寫出來了,當客戶要求改變程式的作用時,我們只要在原來的程式上繼承一個新的類的可以完成;而程序導向很可能要把原來的程式推到,再重新編寫,這樣就會很麻煩。從某一個方面說,就是物件導向程式設計的可變化更好。

12樓:匿名使用者

物件導向技術主要包括物件導向分析ooa,向物件設計ood和麵向物件程式設計oop三大塊內容。

單從物件導向程式設計角度來說,所謂物件導向主要是運用封裝、繼承、多型三個核心特性組織程式**,實現程式可讀性、易維護性、可重用性等目標。

需要注意的一點就是區別與基於物件程式設計的區別:基於物件不支援繼承。

13樓:匿名使用者

(1)物件。

物件是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可

看作物件,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。

(2)物件的狀態和行為。

物件具有狀態,一個物件用資料值來描述它的狀態。   物件還有操作,用於改變物件的狀態,物件及其操作就是物件的行為。   物件實現了資料和操作的結合,使資料和操作封裝於物件的統一體中

(3)類。

具有相同特性(資料元素)和行為(功能)的物件的抽象就是類。因此,物件的抽象是類,類的具體化就是物件,也可以說類的例項是物件,類實際上就是一種資料型別。   類具有屬性,它是物件的狀態的抽象,用資料結構來描述類的屬性。

  類具有操作,它是物件的行為的抽象,用操作名和實現該操作的方法來描述。

(4)類的結構。

在客觀世界中有若干類,這些類之間有一定的結構關係。通常有兩種主要的結構關係,即一般--具體結構關係,整體--部分結構關係。

①一般--具體結構稱為分類結構,也可以說是「或」關係,或者是「is a」關係。

②整體--部分結構稱為組裝結構,它們之間的關係是一種「與」關係,或者是「has a」關係。  (5)訊息和方法。

物件之間進行通訊的結構叫做訊息。在物件的操作中,當一個訊息傳送給某個物件時,訊息包含接收物件去執行某種操作的資訊。傳送一條訊息至少要包括說明接受訊息的物件名、傳送給該物件的訊息名(即物件名、方法名)。

一般還要對引數加以說明,引數可以是認識該訊息的物件所知道的變數名,或者是所有物件都知道的全域性變數名。   類中操作的實現過程叫做方法,一個方法有方法名、返回值、引數、方法體。

物件導向程式設計中,類的作用是什麼

面向對來象程式設計 object oriented programming,oop,面向對 自象程式設計bai 是一種計算機程式設計架du構。oop 的一條基本原則zhi是計算機程式是由dao 單個能夠起到子程式作用的單元或物件組合而成。oop 達到了軟體工程的三個主要目標 重用性 靈活性和擴充套件...

什麼是物件導向程式設計的思想,什麼是物件導向的程式語言啊?

很簡單的說 比如開汽車,我們都知道開汽車只需要踩油門,轉方向盤,剎車,離合器等等,我們要控制的就是這些了,汽車對我們來說就是一個物件,要發動汽車你只需要踩下油門,別的不用管。要是程序導向,那麼你踩下油門後,你還要考慮油門是怎麼工作的,它是怎麼樣讓汽車發動的。在物件導向裡面這都是汽車該考慮的,而不是你...

在物件導向程式設計中,什麼是指把物件的屬性和操作結合在一起

1 易維護 採用物件導向思想設計的結構,可讀性 高,由於繼承的存在,即使改變需求,那麼維護也只是在區域性模組,所以維護起來是非常方便和較低成本的。2 質量高 在設計時,可重用現有的,在以前的專案的領域中已被測試過的類使系統滿足業務需求並具有較高的質量。3 效率高 在軟體開發時,根據設計的需要對現實世...