Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trouble understanding Object State, Behavior, and Identity?

I have been instructed by my professor to introduce myself on a page as if I were an object, and that I must address three things:
1) Object State, 2) Behavior, and 3) Identity.

However, I am still really confused as to how I would go about doing something like this. (I have read about the three attributes I must address, but I don't know how I would apply it to a person).
For example, I was told a dog would have States, such as name, color, and breed; as well as Behaviors, such as walking, barking, or wagging their tail.

So would I do something similar to:

Student me = new Student();
System.out.println(me.getName()); //a state?
System.out.println(me.getCurrentActivity()); //A behavior? (if it were to return watching TV or something) 
System.out.println(me.get....()); //???

Or am I getting the completely wrong idea here?

like image 958
TheNewGuy Avatar asked Aug 13 '13 21:08

TheNewGuy


People also ask

What do you understand by state behavior and identity of an object?

All the objects have a state, behavior and identity. State of an object - The state or attributes are the built in characteristics or properties of an object. For example, a T.V has the size, colour, model etc. Behaviour of the object - The behavior or operations of an object are its predefined functions.

What is the difference between state and behavior of an object?

State simply means data or value. Behavior means action or work or task or operation that the object does.

What are the three characteristics of an object state behaviour function indentity?

An object has three characteristics: State: represents the data (value) of an object. Behavior: represents the behavior (functionality) of an object such as deposit, withdraw, etc. Identity: An object identity is typically implemented via a unique ID.

How can specify the behaviour of an object?

There are a num- ber of means for specifying overall object behavior, the most important of these being modeling the object as a finite state machine. Scenario modeling helps you test your behavioral models to ensure that the objects can collaborate to achieve the system responsibilities.


3 Answers

Characteristics of objects are:

State: what the objects have, Student have a first name, last name, age, etc

Behavior: what the objects do, Student attend a course "Java for beginners"

Identity: what makes them unique, Student have Student-ID-number, or an email which is unique. (this is important when implementing the equals method, to determine if the objects are different or not)

Student john = new Student("John");
john.setCurrentActivity("Learning Java");
john.setAge(21);
john.setWeight(173);
john.setAddress(...);
john.setHobbies(...);

and you can figure out the getters.

public class Student {
    private String name;
    private int    age;
    //etc

    // construct a new student 
    public Student(String name) {
        this.name   = name;
    }

    public setAge(int age) {
        this.age   = age;
    }

    public int getAge() {
        return age;
    }
}

An illustration of a Car object, which I found that might help you some...

Car state:

  • Speed
  • RPM
  • Gear
  • Direction
  • Fuel level
  • Engine temperature

Behaviors:

  • Change Gear
  • Go faster/slower
  • Go in reverse
  • Stop
  • Shut-off

Identity:

  • VIN
  • License Plate
like image 192
MrSimpleMind Avatar answered Oct 22 '22 10:10

MrSimpleMind


All objects have three essential features:

  • state
  • behavior
  • identity

An object's state is defined by the attributes of the object and by the values these have. In your case, name, age, gender

The term "behavior" refers to how objects interact with each other, and it is defined by the operations an object can perform. In your case, student object, can do some activity?

student.getResults();
  • Identity:

Even objects with the same properties and behavior have their own individual identity.

For Example,

2 blue station wagons that were built in the same year by the same manufacturer are still separate and unique cars.

The identity of an object is independent of its attributes or operations. So an object will retain its identity no matter what values its properties have.

like image 5
JNL Avatar answered Oct 22 '22 12:10

JNL


As a correction to @MrSimpleMind's answer marked as best answer, and elaborating on @JNL's answer:

Identity is not what makes the object unique in terms of it's state (e.g. name = "Tim" or whatever). Identity however is that an object is unique in terms of it's location in memory.
If you what to read more about this, you can start by looking at this Wiki page: Identity in OOP

UPDATE
It's worth mentioning that it's not always in terms of location in memory. When saving an object to a database, it'll essentially be saved as a row, here an ID column is used.

like image 5
Millard Avatar answered Oct 22 '22 12:10

Millard