[JAVA] Question de débutant : notion de "static"

Question de débutant : notion de "static" [JAVA] - Programmation

Marsh Posté le 10-01-2002 à 21:32:07    

Bonjour,
 
Je voudrais savoir si en quelques lignes vous pouvez m'expliquer la différence entre champ de classe/méthode de classe et champ d'instance/méthode d'instance. Tout cela tournant autour du concept static...
 
Merci

Reply

Marsh Posté le 10-01-2002 à 21:32:07   

Reply

Marsh Posté le 10-01-2002 à 21:43:38    

Ben un champ d'instance est propre à une instance.
Et un champ de classe est propre à une classe (et partagés par toutes les instances de la classe).
Une méthode d'instance peut accéder au 2.
Une méthode de classe n'accède qu'aux champ de classe.
Et il n'y a pas de résolution virtuelle des appels avec des méthodes de classes.
Tout cela se retrouve aussi en c++.
 
A noter que le java utilise aussi le modificateur static pour des classes internes.

Reply

Marsh Posté le 10-01-2002 à 21:52:56    

une méthode ou un attribut static apprtient a une classe et pas à une instance. Cela signifie qu'on peut les utiliser sans avoir à crééer d'instance d'objet. Par exemple, tu peux faire Integer.parseInt("666" ) pour trouver la valeur entière d'une chaine de caractère. parseInt est une méthode static de la classe Integer.
 
On peut voir les trucs static comme des reliquats des langages structurels dans le sens où ils vont un peu à l'encontre de l'orienté objet : tu peux faire un programme en n'utilisant que des méthodes et des attributs static. Ca reviendra en gros à faire du C.
 
Dans la pratique, les méthodes static sont souvent utilisées pour rendre des "services" qui peuvent être associés à la classe (ex du parseInt pour la classe Integer). Les attributs static sont souvent utilisés pour déclarer des constantes (public static final int MA_CONSTANTE=0).
 
Il existe également des blocs static qui correspondent à un bout de code qui sera executer lors du chargement de la classe par la JVM. C'est par exemple là qu'on initialise les attributs static où qu'on enregistre une classe auprès d'un service (système utilisé par les drivers de base de donnée JDBC pour s'enregistrer lors du Class.forName("..." )).
 
pour des infos plus compmlètes : http://penserenjava.free.fr/pens/i [...] htm#01.019

Reply

Marsh Posté le 10-01-2002 à 22:04:30    

Ok merci, j'ai compris!
 
A+

Reply

Marsh Posté le 11-01-2002 à 08:25:19    

Roco a écrit a écrit :

Bonjour,
 
Je voudrais savoir si en quelques lignes vous pouvez m'expliquer la différence entre champ de classe/méthode de classe et champ d'instance/méthode d'instance. Tout cela tournant autour du concept static...
 
Merci  




 
Tu es débutant toi ?


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 11-01-2002 à 19:17:47    

Ca y est, jme sens obligé de me justifier...
 
En fait, je ne suis ni un débutant, ni un pro... Cela fait un an et quelques mois que j'ai commencé à apprendre Java. Mais, à vrai dire je n'est eu qu'une quarantaine d'heures de cours au total. En effet, je fais une formation très généraliste :
 
.Economie/Management
.Communication  
.Anglais
.Réseaux informatiques
.Base de données
.Programmation Java, php, dhtml, etc
.multimédia on-line/off-line
.mathématiques/signaux...  
 
Tout cela en 2 ans!
 
Donc forcément, j'ai beaucoup de travail et que très peu de temps pour me spécialiser sur les matières qui m'intéresse vraiment...
 
Donc en Java je m'y connais un peu, c'est-à-dire que je fais de petit softs graphiques genre calculatrice, petit utilitaires...
Je m'interesse aussi pas mal qu Jsp/Base de données pour tout ce qui est requête, gestion de caddie, authentification...
 
Et puis tu sais, tu peux très bien programmer en Java, sans connaitre a fond tout les aspects de la programmation objet... Je programme pas mal à tatons et je corrige au fur et à mesure de mes erreurs aidé par les erreurs de compilation.
 
En ce moment, je lis Java in a nutshell et je dois avoué qu'il est VRAIMENT plus poussé que tous les ouvrages que j'ai lu avant, et j'ai parfois du mal à saisir tout les concepts abordés!
 
Voilà!
 
P.S. : Si tu veux voir en savoir plus sur mon profile tu peux aller dans le forum offres/demandes emploi, je compte y passer une annonce pour un stage ce soir.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed