2009-11-26 5 views
1

Je suis confus que celui des deux existe dans la mémoire d'une classe ou de l'objet?classe et méthode en java

+3

Qui est en mouvement? Le drapeau, ou le vent? –

+2

quelle langue demandez-vous? Java ou Javascript? – bmargulies

+0

Javascript n'a pas de cours. La seule réponse à cette question est "mu". –

Répondre

3

L'objet.

Dans une certaine mesure, la classe aussi, mais je pense que ce que vous voulez dire est de préciser lequel est celui qui détient les données.

Par exemple:

C'est la classe:

class Employee { 
    String name; 
} 

et l'objet de l'instance serait:

Employee e = new Employee(); 
e.name = "himangi"; 

Employee other = new Employee(); 
other.name = "John"; 

Il vous avez deux objets, e et other ils existent dans la mémoire . Ce qui le rend un peu confus, c'est que Java a aussi stocké la définition de classe en tant qu'objet, donc en Runtime vous pouvez avoir un objet class qui représente la classe Employee.

Class employeeClass = Employee.class; 
System.out.println(employeeClass.getName()); 

Mais là encore, ce qui existe dans la mémoire est l'objet.

1

La classe est le plan de l'objet.

La classe définit les méthodes et propriétés qu'un objet va prendre en charge/utiliser.

L'objet est une instance du plan.

Chaque fois que vous créez un objet, il sera conservé en mémoire,

-à-dire 10 objets = 10 instances de mémoire stockées

Une classe est stockée dans la mémoire de telle sorte que l'environnement d'exécution peut « recherche » la classe definition/blueprint et créez une nouvelle instance pour vous. La différence ici est qu'une seule définition de la classe serait stockée en mémoire, quel que soit le nombre d'objets que vous créez.

1 La définition de classe peut avoir plusieurs instances d'objet (sauf si la classe est marquée comme statique, auquel cas il y a 1 définition de classe et 1 instance).

La même chose est vraie pour la plupart des langages compilés.

Questions connexes