2013-08-13 29 views
11

Zostałem pouczony przez mojego profesora, że ​​przedstawiam się na stronie, tak jakbym był obiektem, i że muszę zająć się trzema rzeczami:
1) Stan obiektu, 2) Zachowanie i 3) Tożsamość.Problemy ze zrozumieniem Stan, zachowanie i tożsamość obiektu?

Jednak nadal jestem bardzo zdezorientowany, jeśli chodzi o robienie czegoś takiego. (Czytałem o trzech atrybutach, którymi muszę się zająć, ale nie wiem, w jaki sposób mógłbym je zastosować do osoby).
Na przykład powiedziano mi, że pies będzie miał państwa, takie jak imię, kolor i rasa; a także Zachowania, takie jak chodzenie, szczekanie lub machanie ogonem.

Więc chciałbym zrobić 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....()); //??? 

Albo ja się kompletnie zły pomysł tutaj?

+0

spójrz na ten artykuł: http: // www.yegor256.com/2014/12/09/immutable-object-state-and-behavior.html – yegor256

Odpowiedz

29

Charakterystyka obiektów są:

State: jakie obiekty mają, Student posiada imię, nazwisko, wiek, itp

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

Tożsamość: co czyni je wyjątkowymi, Student ma numer identyfikacyjny ucznia lub adres e-mail, który jest unikalny. (Jest to ważne podczas wdrażania metody equals, aby określić, czy obiekty są różne lub nie)

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

i można dowiedzieć się pobierające.

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 obiektu samochodu, który znalazłem, może pomóc ...

stan samochodów:

  • Prędkość
  • RPM
  • biegów
  • Direction
  • poziomu paliwa
  • temperatura silnika

Zachowania:

  • Zmiana biegów
  • szybciej/wolniej
  • Go w odwrotnej
  • Zatrzymaj
  • odcinający

Identity:

  • VIN
  • tablica rejestracyjna
+0

Dzięki za pomoc, ale muszę również wiedzieć, co uważają za stan, zachowanie i tożsamość. To są główne rzeczy, których nie rozumiałem/szukałem pomocy. – TheNewGuy

+0

Wyjaśniając tożsamość, myślę, że tożsamość jest bardziej związana z unikalnym obiektem. Identyfikator ucznia i identyfikator e-mail będą właściwościami dla ucznia. – JNL

+0

właściwości, które są unikalne w materii i sprawiają, że ten konkretny obiekt jest unikalny w domenie. To nie jest to samo co kod skrótu obiektu. – MrSimpleMind

2

Wszystkie obiekty mają trzy zasadnicze funkcje:

  • stan
  • zachowanie
  • tożsamości

Stan obiektu jest zdefiniowany przez atrybuty obiektu i według ich wartości. W twoim przypadku, name, age, gender

Termin "behavior" odnosi się do sposobu objects interact with each other i jest zdefiniowany przez operacje obiekt może wykonywać. W twoim przypadku, obiekt ucznia, możesz zrobić jakąś aktywność?

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

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

na przykład

2 niebieskie kombi, które zostały zbudowane w tym samym roku przez tego samego producenta są jeszcze oddzielne i wyjątkowe samochody.

Tożsamość obiektu jest niezależna od jego atrybutów lub operacji. Tak więc obiekt zachowa swoją tożsamość niezależnie od wartości posiadanych przez nią właściwości.

+0

Rozumiem. Tak więc zachowanie będzie tak, jak to wyjaśniłem, oglądając telewizję lub rozmawiając z ludźmi. A co z tożsamością? – TheNewGuy

+0

@TheNewGuy: Zmieniono odpowiedź. Daj mi znać, jeśli mi pomoże. – JNL