2012-04-01 67 views
15

我不斷聽到術語對象有行爲和狀態或只是其中之一。但是它有什麼區別或意味着什麼,如果有人能舉出一個例子,我會非常感激。對象與狀態和行爲在oop

+1

州是一個州。一個蘋果是綠色的,紅色的,也許是黃色的,遲早會腐爛。與對象不一樣。請對你的問題更具體。 – Michael 2012-10-02 18:17:36

+0

閱讀本文,可能有幫助:http://www.yegor256.com/2014/12/09/immutable-object-state-and-behavior.html – yegor256 2014-12-09 07:02:36

回答

9
class Door { 
    boolean isOpen; 

    void close(){ 
    isOpen = false; 
    } 
} 

看看這個簡單的片段。 我們有Door,它有一個狀態isOpen - 變量描述了這扇門的當前狀態。方法close它是行爲的門,當我們稱之爲,我們改變對象的當前狀態。

我建議你閱讀有關面向對象編程的初學者書:Head First Object-Oriented Analysis and Design。如果你閱讀它,你會得到更好的理解。

+0

屬性是行爲還是狀態? – Roar 2014-07-12 06:46:47

5
abstract class Animal 
{ 
    int age; 
    abstract void Run(); 
} 

class Tiger:Animal 
{ 
    override void Run() 
    { 
     //something. 
    } 
} 

main() 
{ 
    Tiger t1 = new Tiger(); 
    Tiger t2 = new Tiger(); 
    t1.age = 25; 
    t2.age = 10; 
} 

現在您已經創建了兩個Tiger對象。 Tiger可以Run。這是對象Tiger的行爲。 t1 age25t2 age10t1.age, t2.age是對象的狀態。

希望這會有所幫助。

24
  • 燈是一個對象。
  • 燈中的「狀態」:打開和關閉。
  • 燈中的「行爲」:打開和關閉。

在編程聲明中的「田」和行爲狀態中的「方法」等。

閱讀和學習object-oriented

+0

屬性是行爲還是狀態? – Roar 2014-07-12 06:45:55

+0

屬性將被視爲狀態 – KawaiKx 2017-04-20 13:57:07

2

對象由方法和字段定義。

字段或狀態可以被認爲是對象內的當前條件。香蕉的狀態將是它的形狀,顏色和大小 方法或行爲可以被認爲是它的行爲。隨着香蕉,無論是成熟還是乾燥都可以成爲行爲。