Проблемы с пониманием состояния объекта, поведения и идентификации?
Мне поручил мой профессор представить себя на странице, как если бы я был объектом, и что я должен рассмотреть три вещи:
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
- Уровень топлива
- Температура двигателя
Поведения
- Изменить механизм
- Перейти быстрее/медленнее
- В обратном порядке
- Стоп
- Запорный
Идентичность
Ответ 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