Déclarations de variables et performances...

omcougar Messages postés 152 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 8 octobre 2008 - 16 oct. 2006 à 10:17
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 16 oct. 2006 à 19:20
bonjour,

j'ai bien compris (je crois) les restrictions d'utilisation qu'enjendrent les déclarations static public protected private en ce qui concerne la programmation.

Je me demandais si décraler ses varaibles "private" partout ou cela est possible rendait l'execution plus performante ou si le choix de mettre en public ou private intervenait simplement sur la "netteté" du code ?

question corollaire, suite à la programmation d'un code de plus en plus lourd, j'ai commencé à le "nettoyer" en déclarant toutes les variables des objets "private" et en y accedant en lecture/ecriture par des méthodes qui elles sont "public"... et depuis j'ai l'impression que mon code est nettement plus performant.
Je me demandais donc si récupérer / modifier les variables d'un objet via des méthodes propres à cette objet n'était pas plus performant que d'y acceder directement?

x=A.value  (ou)  x=A.get_value();

Merci.

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
16 oct. 2006 à 12:42
niveau perf, je ne pense pas que ce soit flagrant de déclarer des variables public ou private : de toute façon, il faudras les instancier.

Par contre, accèder aux variables par des fonctions get/set, c'est forcément plus lent car ca coûte un appel de fonction (quoique le compilo optimise peut-être cà !), mais là encore, ca ne doit pas être flagrant ! Mais niveau encapsulation des données, y'a pas photo : le code est bien plus réutilisable et surtout, bien plus maintenable car tu peux modifier le type des variables sans intervenir sur l'interface de tes classes !
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 oct. 2006 à 14:03
Salut,

Le fait de déclarer une variable, méthode ou class en private(ou protected) conciste à sécuriser un code face aux acces dessus, maintenant concernant les set/get leurs avantages est surtout de pouvoir effectuer un traitement générique sur l'acces à la variable exemple:

private int indiceTableau = 0;

//ici l'indice ne doit pas etre inférieur à 0
public void setIndiceTableau(int indice){
    indiceTableau = (indice < 0) ? 0 : indice;
}

public int getIndiceTableau(){
    return indiceTableau;
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
16 oct. 2006 à 19:20
ouaip mais quand c'est compile je crois , je ne suis pas sur que le compilateur peut optimiser le code pour les acces au variable par des methode avec une mise en memoire ...

je suis pas trop sur de ce que je dit mais bon ...

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Rejoignez-nous