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?
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
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.
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.
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
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
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