2013-08-13 1 views
11

Я был проинструктирован моим профессором представить себя на странице, как если бы я был объектом, и что я должен обратиться к трем вещам:
1) Состояние объекта, 2) Поведение и 3) Идентичность.Проблемы с пониманием состояния объекта, поведения и идентичности?

Однако, я все еще очень смущен относительно того, как я буду делать что-то подобное. (Я читал о трех атрибутах, которые я должен указать, но я не знаю, как я применил бы это к человеку).
Например, мне сказали, что у собаки будут такие состояния, как имя, цвет и порода; а также поведения, такие как ходьба, лай или виляние хвоста.

Так что я сделал бы что-то похожее на:

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....()); //??? 

Или я получаю совершенно неверное представление здесь?

+0

взгляните на эту статью: http: // www.yegor256.com/2014/12/09/immutable-object-state-and-behavior.html – yegor256

ответ

29

Характеристики объектов являются:

Государственный: , что объекты имеют, студент имеет имя, фамилию, возраст и т.д.

Поведение: , что объекты, Студенты посещают курс «Java для начинающих»

Идентификатор: Что делает их уникальными, Студент имеет идентификационный номер студента или уникальное электронное письмо. (Это важно при реализации метода Equals, чтобы определить, являются ли объекты различны или нет)

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

и вы можете выяснить, методы получения.

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; 
    } 
} 

Иллюстрация объекта «Автомобиль», который я нашел, который может вам помочь ...

состояние автомобиля:

  • Скорость
  • RPM
  • передач
  • Направление
  • уровня топлива
  • Температура двигателя

Поведения:

  • Изменить механизм
  • Go быстрее/медленнее
  • Перейти в обратном
  • Stop
  • Запорный

Идентичность:

  • VIN
  • номерного знака
+0

Спасибо за помощь, но мне также нужно знать, что они будут рассматривать как состояние, поведение и личность. Это основные вещи, которые я не понимал/не искал помощи. – TheNewGuy

+0

С объяснением Identity я считаю, что личность больше связана с уникальным объектом. Идентификатор студента и идентификатор электронной почты будут свойствами для учащегося. – JNL

+0

свойства, которые уникальны в материи, и делают этот конкретный объект уникальным в домене. Это не то же самое, что и хэш-код объекта. – MrSimpleMind

2

Все объекты имеют три основные функции:

  • состояние
  • поведение
  • удостоверения

Состояние объекта определяется атрибутами объекта и их значениями. В вашем случае, name, age, gender

Термин "behavior" относится к тому, как objects interact with each other, и определяется с помощью операций объект может выполнять. В вашем случае объект-ученик может выполнять некоторые действия?

student.getResults(); 
  • Идентичность:

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

Для примера,

2 синих универсалы, которые были построены в том же году одним и тем же производитель еще отдельный и уникальные автомобили.

Идентичность объекта не зависит от его атрибутов или операций. Таким образом, объект сохранит свою личность независимо от того, какие значения имеют ее свойства.

+0

Я вижу. Таким образом, поведение было бы таким, как я объяснял, смотреть телевизор или разговаривать с людьми. А как же Identity? – TheNewGuy

+0

@ TheNewGuy: отредактировал ответ. Дайте мне знать, если поможете. – JNL