web-dev-qa-db-fra.com

Quelle est la différence entre les classes et les instances d'objet?

Une classe est une liaison de méthodes et de variables dans une seule unité.
Un objet est une instance d'une classe.

Ce sont des définitions pour les classes et les objets dans les livres de programmation. Mon ami a dit qu'une classe est le modèle d'un objet. Un objet est une vraie "chose" d'un plan. Il a donné un exemple: si Company est une classe, INFOSYS, CTS et TCS, etc. sont des objets. Chaque fois que je pense aux classes et aux objets, ces définitions me déroutent. Si channel est une classe, quels seraient les objets pour la classe? Si l'eau est une classe, quels seraient les objets de classe? Pouvez-vous clarifier?

9

Si channel est une classe, ses objets sont Start Sports, BBC et ESPN. Si l'eau est une classe, ses objets sont "Fresh Lime Water" et "Soup".

Bien que vous puissiez trouver cette explication vague, c'est la réponse à laquelle je pourrais penser.

Voici comment vous pouvez en apprendre davantage sur les classes et les distinguer:

Disons que vous avez une classe "CAR"

Ses objets sont Hyundai, Ford, Suzuki. Il aura les mêmes méthodes mais des conceptions différentes -> c’est ainsi que vous pouvez associer des objets et des classes au monde réel.

14
Ishan Khanna

Une classe spécifie le comportement de ses instances.

Une classe est aussi une instance d'une classe (la classe d'une classe s'appelle une "métaclasse").

Une classe est une abstraction. Vous trouvez une classe en recherchant des propriétés génériques s’appliquant à un groupe d’objets.

Ensuite, une classe est un modèle qui définit les méthodes (comportement) et les variables (état) à inclure dans un type d'objet particulier

La reconnaissance des classes (en dehors de la classe) requiert de l'expérience.

Rien à lire à Alan Kay, il est l'inventeur de la technologie d'objets et l'un des inventeurs de Smalltalk, le seul environnement d'objets purs à ce jour.

5
Hernán

Je n'ai pas beaucoup d'expérience en programmation, mais un de mes amis m'a donné un bon exemple de définition d'une classe et d'un objet. Je ferai de mon mieux pour utiliser le langage humain autant que possible.

Prends un cheval. Qu'est-ce qui vous fait savoir que cet animal est un cheval et non un ... chien? Parce qu'il a quatre pattes, c'est un gros animal, il est très fort et il peut courir. Eh bien, vous venez de définir une classe 'cheval' dans votre tête! Maintenant, vous allez voir un cheval blanc appelé «Pollyanna» et un cheval noir appelé «Démon». Dès que vous les voyez, vous savez que ce sont des chevaux, ils appartiennent donc à la classe des «chevaux». Qu'est-ce qui les rend différents? Le sexe et la couleur ... Ce sont des propriétés de la classe 'cheval'. 'Pollyanna' et 'Demon' sont deux objets, ce sont des choses réelles, des choses que vous pouvez réellement toucher et monter. Leurs propriétés, leur sexe et leur couleur sont également différents. Pollyanna est blanche et féminine. Le démon est noir et masculin. Ces propriétés définies sont ce qui distingue un objet de l’autre. Un cheval de l'autre. Mais ils appartiennent toujours à la même classe: ce sont toujours des chevaux!

Plus technique maintenant ... Une classe est une définition plus abstraite de quelque chose. Un plan. Un objet est la vraie chose qui appartient à cette classe. Lorsque vous créez un nouvel objet à partir d'une classe, vous instanciez un objet (alias création d'une instance).

J'espère que ça aide, et si ça ne regrette pas ... Comme je l'ai déjà dit, je n'ai pas beaucoup d'expérience en programmation :)

Gianluca

3
user2260626

Je vais vous donner une explication classique, vous pouvez trouver différentes versions de cela partout.

Une classe est comme un plan. Supposons que vous vouliez construire une voiture, la première chose dont vous auriez besoin est un plan, c’est la classe. Le plan décrira des «méthodes» telles que brake et hoot. Il décrira également les différents composants de la voiture. Ce sont des variables.

Un objet voiture est une instanciation d'une classe de voiture. Vous pouvez en avoir beaucoup pour une classe de voiture.

Par exemple:

class Car:
    def __init__(self,color):
        self.color = color

    def hoot(self):
        "do stuff"


red_car = Car('red')
red_car.hoot()
blue_car = Car('blue')
blue_car.hoot()

Maintenant, selon le langage que vous utilisez, les classes elles-mêmes peuvent être des objets (c'est le cas en Python). Pensez-y de cette façon: tous les plans ont des points communs. Ce truc commun est décrit dans la classe du plan (qui est en soi un plan). 

Ensuite, sur le thème de «l’eau» en tant que classe, vous pouvez l’aborder de plusieurs manières en fonction de ce que vous voulez faire:

voie 1:

ayez plutôt une classe appelée Liquid avec des variables décrivant des éléments tels que viscosité, odeur, densité, volume, etc. L'eau en serait un exemple. Le jus d'orange aussi

voie 2:

dites que vous étiez en train de créer un jeu avec un tas de blocs qui seraient constitués de terrains différents. Vous pourriez alors avoir des cours tels que Grass, Water, Rock, etc. (pensez à Minecraft). Vous pouvez ensuite faire en sorte qu'une instance de classe d'eau (un objet d'eau) occupe une position spécifique sur la carte. 

2
Sheena

Dans le monde réel, vous trouverez souvent de nombreux objets individuels du même type. Il peut y avoir des milliers d'autres canaux existants, tous de la même marque et du même modèle. Chaque canal a été construit à partir du même ensemble de plans et contient donc les mêmes composants. En termes orientés objet, on dit que votre canal est une instance de la classe d'objets appelée canal. Une classe est le modèle à partir duquel des objets individuels sont créés.

class Channel {

    ChannelType type = 0;
    int employeeCount = 0;


    void setType(ChannelType newType) {
         type = newValue;
    }

    void addEmployer(int increment) {
         employeeCount= employeeCount+ increment;   
    }

    void removeEmployer(int decrement) {
         employeeCount= employeeCount- decrement;
    }

    void printStates() {
         System.out.println("type :" +
             type + " employee count:" + employeeCount);
    }
}

La conception de cette classe est basée sur la discussion précédente sur les objets Channel. Les champs typr, employeeCount représentent l'état de l'objet et les méthodes (setType, addEmployer, removeEmployer, etc.) définissent son interaction avec le monde extérieur.

Vous avez peut-être remarqué que la classe Channel ne contient pas de méthode principale. C'est parce que ce n'est pas une application complète; c'est juste le plan détaillé pour les canaux qui pourraient être utilisés dans une application. La responsabilité de la création et de l'utilisation de nouveaux objets Chennel appartient à une autre classe de votre application.

class Channel Demo {

    public static void main(String[] args) {

        // Create two different 
        // Channel objects
        Channel BBC= new Channel ();
        Channel NTV = new Channel ();

        // Invoke methods on 
        // those objects
         BBC.setType(channeltype.NEWS);
         BBC.addEmployer(500);
         BBC.printStates();

         BBC.setType(channeltype.SPORT);
         BBC.addEmployer(300);
         BBC.printStates();


    }
}

La sortie de ce test imprime pour les deux canaux:

type: NEWS nombre d'employés: 500

type: SPORT Nombre d'employés: 300

0
Talha

Un objet a une durée de vie limitée, des objets sont créés et éventuellement détruits. De plus, au cours de cette vie, l'objet peut subir d'importants changements

0
prashant

Classe

  1. Un moyen de lier les données et les fonctions associées.
  2. La classe a beaucoup d'objets.
  3. Class est un modèle pour la création d'objets.
  4. C'est une existence logique.
  5. L'espace mémoire n'est pas alloué lors de sa création.
  6. La définition (déclaration) est créée une fois.
  7. La classe est déclarée à l'aide du mot clé "class".

Objet

  1. Entité d'exécution de base dans un environnement orienté objet.
  2. L'objet appartient à la seule classe.
  3. Object sont une implémentation de la classe.
  4. C'est l'existence physique.
  5. L'espace mémoire est alloué lors de sa création.
  6. Il est créé plusieurs fois selon vos besoins.
  7. Object est l'instance ou la variable de la classe.
0
Mansi Panchal

en grammaire nom commun est classe et nom propre est objet.

0
Bijay Mishra