2012-04-01 120 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

对象由方法和字段定义。

字段或状态可以被认为是对象内的当前条件。香蕉的状态将是它的形状,颜色和大小 方法或行为可以被认为是它的行为。随着香蕉,无论是成熟还是干燥都可以成为行为。