Problemy ze zrozumieniem stanu obiektu, zachowania i tożsamości?

Zostałem poinstruowany przez mojego profesora, aby przedstawić się na stronie, jakbym był przedmiotem, i że muszę odnieść się do trzech rzeczy:
1) Stan obiektu, 2) zachowanie i 3) tożsamość.

Jednak nadal jestem bardzo zdezorientowany, jak mógłbym zrobić coś takiego. (Przeczytałem o trzech atrybutach, które muszę zaadresować, ale nie wiem, jak bym to zastosował do osoby).
Na przykład, powiedziano mi, że pies będzie miał stany, takie jak imię, kolor i Rasa; a także zachowania, takie jak chodzenie, szczekanie lub machanie ogonem.

Więc zrobiłbym coś podobnego do:

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

Czy mam kompletnie błędne wyobrażenie?

Author: Calculus, 2013-08-13

5 answers

Charakterystyka obiektów to:

Państwo : co mają obiekty , uczeń ma imię, nazwisko, wiek itp

Zachowanie : co robią obiekty , Student uczestniczy w kursie "Java dla początkujących"

Tożsamość : co czyni je unikalnymi , Student ma numer legitymacji studenckiej lub e-mail, który jest unikalny. (jest to ważne przy implementacji metody equals, aby określić, czy obiekty są inny czy nie)

Student john = new Student("John");
john.setCurrentActivity("Learning Java");
john.setAge(21);
john.setWeight(173);
john.setAddress(...);
john.setHobbies(...);
/ Align = "center" bgcolor = "# e0ffe0 " / cesarz chin / / align = center /
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;
    }
}

Ilustracja przedmiotu samochodu, który znalazłem, który może Ci pomóc...

Stan samochodu :

  • Speed
  • RPM
  • bieg
  • kierunek
  • poziom paliwa
  • temperatura silnika

Behaviors :

  • Zmień Bieg
  • Idź szybciej / wolniej
  • wejdź rewers
  • Stop
  • Shut-off

Tożsamość :

  • VIN
  • Tablica Rejestracyjna
 47
Author: MrSimpleMind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-15 18:37:53

Wszystkie obiekty mają trzy zasadnicze cechy:

  • Stan
  • zachowanie
  • tożsamość

Stan obiektu jest definiowany przez atrybuty obiektu oraz przez wartości, które mają. W Twoim przypadku name, age, gender

Termin "behavior" odnosi się do sposobu objects interact with each other i jest definiowany przez operacje, które obiekt może wykonać. W Twoim przypadku, student obiekt, może zrobić jakąś aktywność?

student.getResults();
  • tożsamość:

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

Dla Przykład,

2 niebieskie kombi, które zostały zbudowane w tym samym roku przez Producent to wciąż osobne i unikalne samochody.

Tożsamość obiektu jest niezależna od jego atrybutów lub operacji. Tak więc obiekt zachowa swoją tożsamość bez względu na to, jakie wartości mają jego właściwości.

 4
Author: JNL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Jako sprostowanie do odpowiedzi @MrSimpleMind oznaczonej jako najlepsza odpowiedź, oraz rozwinięcie odpowiedzi @JNL:

tożsamość nie jest tym, co czyni obiekt unikalnym pod względem jego stanu(np. name = " Tim " lub cokolwiek innego). Tożsamość polega jednak na tym, że obiekt jest unikalny pod względem jego lokalizacji w pamięci.
Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zacząć od zajrzenia na tę stronę Wiki: Identity in oop

UPDATE
Warto wspomnieć, że nie zawsze w warunki lokacji w pamięci. Podczas zapisywania obiektu w bazie danych, będzie on zasadniczo zapisywany jako wiersz, tutaj używana jest kolumna ID.

 3
Author: Millard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-24 15:14:11

State: - stan to wartości zmiennych obiektów

Behavior: - are methods of object

Identity: - jest to nazwa obiektu.

Np: -

Class car {

Int speed = 100;

Void accelerate () {}

}

Class_car obj_car;

Tutaj,

State: - speed

Behavior: - accelerate

Identity: - obj_car

 1
Author: Prateek Mahajan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-13 19:24:32

W implementacji programowej obiektu,

Jego stan jest określony przez zmienne instancji. Zmienne instancji są prywatne dla obiektu. O ile nie zostaną jawnie upublicznione lub udostępnione innym "przyjaznym" klasom, zmienne instancji obiektu są niedostępne spoza obiektu.

Zachowanie obiektu jest definiowane przez jego metody. Metody manipulują zmiennymi instancji w celu utworzenia nowego stanu; metody obiektu mogą również tworzyć nowe obiekty. Java white papierowa strona:34

 1
Author: Madhava Rao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-28 08:14:30