Проблемы с пониманием состояния объекта, поведения и идентификации?

Мне поручил мой профессор представить себя на странице, как если бы я был объектом, и что я должен рассмотреть три вещи:
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....()); //???

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

Ответ 1

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

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

Поведение: что делают объекты, Студент посещает курс "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
  • Снасти
  • Direction
  • Уровень топлива
  • Температура двигателя

Поведения

  • Изменить механизм
  • Перейти быстрее/медленнее
  • В обратном порядке
  • Стоп
  • Запорный

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

  • VIN
  • Номер лицензии

Ответ 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 синих вагона, которые были построены в том же году тем же самым производитель все еще являются отдельными и уникальными автомобилями.

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

Ответ 3

В качестве исправления к ответу @MrSimpleMind помечен как лучший ответ и уточняется ответ @JNL:

Идентичность - это не то, что делает объект уникальным с точки зрения его состояния (например, name = "Tim" или что-то еще). Однако идентичность заключается в том, что объект уникален с точки зрения его расположения в памяти.
Если вы хотите узнать больше об этом, вы можете начать с просмотра этой вики-страницы: идентификация в ООП

UPDATE
Стоит отметить, что это не всегда с точки зрения расположения в памяти. При сохранении объекта в базе данных он будет по существу сохранен в виде строки, здесь используется столбец идентификатора.

Ответ 4

State: - состояние - значения переменных объектов

Поведение: - это методы объекта

Идентификационные данные: - Это имя объекта.

например: -

классный автомобиль {

int speed = 100;

void ускорение() {}

}

class_car obj_car;

здесь,

Состояние: - скорость

Поведение: - ускорение

Идентификационные данные: - obj_car