web-dev-qa-db-fra.com

Difficulté à comprendre l'état, le comportement et l'identité de l'objet?

Mon professeur m'a chargé de me présenter sur une page comme si j'étais un objet, et que je dois aborder trois choses:
1) État de l'objet, 2) Comportement et 3) Identité.

Cependant, je suis toujours très confus quant à la façon dont j'allais faire quelque chose comme ça. (J'ai lu sur les trois attributs que je dois aborder, mais je ne sais pas comment je l'appliquerais à une personne).
Par exemple, on m'a dit qu'un chien aurait des États, comme le nom, la couleur et la race; ainsi que des comportements, comme marcher, aboyer ou remuer la queue.

Alors je ferais quelque chose de similaire à:

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

Ou ai-je une idée complètement fausse ici?

18
TheNewGuy

Les caractéristiques des objets sont:

État: ce que les objets ont , l'élève a un prénom, nom, âge, etc.

Comportement: ce que font les objets , l'étudiant suit un cours "Java pour débutants"

Identité: ce qui les rend uniques , les étudiants ont un numéro d'identification d'étudiant ou un e-mail unique. (ceci est important lors de l'implémentation de la méthode equals, pour déterminer si les objets sont différents ou non)

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

et vous pouvez comprendre les getters.

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;
    }
}

Une illustration d'un objet Car, que j'ai trouvé qui pourrait vous aider ...

État de la voiture:

  • La vitesse
  • RPM
  • Équipement
  • Direction
  • Niveau de carburant
  • Température moteur

Comportements:

  • Changer de vitesse
  • Aller plus vite/plus lentement
  • Aller en sens inverse
  • Arrêtez
  • Éteindre

Identité:

  • VIN
  • Plaque d'immatriculation
40
MrSimpleMind

Tous les objets ont trois caractéristiques essentielles:

  • etat
  • comportement
  • identité

Un l'état de l'objet est défini par les attributs de l'objet et par les valeurs qu'ils ont. Dans ton cas, name, age, gender

Le terme "behavior" fait référence à la façon dont objects interact with each other, et il est défini par les opérations qu'un objet peut effectuer. Dans votre cas, objet étudiant, pouvez-vous faire une activité?

student.getResults();
  • Identité:

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

Par exemple,

2 voitures bleues construites la même année par le même constructeur sont toujours des voitures distinctes et uniques.

L'identité d'un objet est indépendante de ses attributs ou opérations. Ainsi, un objet conservera son identité quelles que soient les valeurs de ses propriétés.

3
JNL

Comme correction à la réponse de @ MrSimpleMind marquée comme meilleure réponse, et développant la réponse de @ JNL:

L'identité n'est pas ce qui rend l'objet unique en termes d'état (par exemple nom = "Tim" ou autre). L'identité est cependant qu'un objet est unique en termes d'emplacement dans la mémoire.
Si vous voulez en savoir plus à ce sujet, vous pouvez commencer par regarder ceci Page Wiki: Identity in OOP

[~ # ~] mise à jour [~ # ~]
Il convient de mentionner que ce n'est pas toujours en termes de localisation dans la mémoire. Lors de l'enregistrement d'un objet dans une base de données, il sera essentiellement enregistré sous forme de ligne, ici une colonne ID est utilisée.

2
Millard