Apprendre les langues arabe et française
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
LEGODAYS : 20% sur une sélection de LEGO avec ...
Voir le deal

Projet de dictionnaires arabes

4 participants

Page 73 sur 90 Précédent  1 ... 38 ... 72, 73, 74 ... 81 ... 90  Suivant

Aller en bas

Projet de dictionnaires arabes - Page 73 Empty Re: Projet de dictionnaires arabes

Message par Adel Medine Mar 23 Déc - 19:00

Les ArrayList c'est simple. C'est une collection de données en fait. Il existe pleins de classes fournis en Java ou .NET en ce qui concerne les collections de données.

En l'occurrence on peut mettre n'importe quel type d'objet dans une collection, et même faire des collections hybrides, et on spécifie cela avec
Code:
<?>

où le ? est remplacé par le type de données que l'on souhaite dans le tableau/la liste. On appelle cela des génériques en programmation.

Dans mon exemple,
Code:
 Arraylist<String>

, c'est une collection de String c'est à dire une collection de chaîne de caractères. Il suffit d'appeler la méthode add de la collection en lui donnant en paramètre la chaîne de caractères à ajouter et cela l'ajoute.

Adel Medine

Messages : 643
Points : 655
Date d'inscription : 09/09/2013

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 73 Empty Re: Projet de dictionnaires arabes

Message par Ibn Nacer Mar 23 Déc - 20:03

السلام عليكم ورحمة الله وبركاته

Adel Medine a écrit:Oui tu pourrais mettre la classe et la méthode en static. Il faut par contre connaitre la bonne raison de cela. Eviter d'instancier un objet n'est pas une bonne raison. Dans un systéme orienté objet on passe son temps a instancier des objets c'est la définition meme d'un systéme objet : des objets qui collaborent entre eux pour réaliser un traitement.

C'est pour te montrer cela que je ne l'ai pas mise static.

Oui c'est vrai, en programmation orienté objet on instancie des objets sinon ce n'est plus de la POO mais ça n’empêche que par exemple on a inventè la classe StringBuilder car dans certains cas son utilisation consomme moins de mémoire que l'utilisation de la classe String.

Adel Medine a écrit:
Une classe static est quand meme chargée en mémoire (comme une variable globale) et sa durée de vie est aussi longue que la durée de vie du programme contrairement à une instance d'une classe (un objet) qui bien souvent à une durée de vie plus courte (le temps d'une méthode par exemple) En static c'est comme si tu avais toujours qu'une instance d'une classe (un objet) en mémoire bien que tu ne l'utilises pas.
Oui je suppose qu'elle est chargée en mémoire comme pour toutes les autres classes, non ? C'est-à-dire que même les autres classes ont au moins un "exemplaire" ou quelque chose comme ça qui est chargé en mémoire et à partir duquel on pourra instancier d'autres objets. Ces autres objets sont "crées dynamiquement"...



Adel Medine a écrit:

Là la raison c'est que vu comme cela la classe Devocaliseur n'a aucune donnée membre (aucune encapsulation). Bref, tu n'as pas besoin d'avoir plusieurs instances de cet objet en mémoire à priori. Elle est un peu comme la class Math avec ses méthodes static cosinus ou sinus.

Aprés tout dépend de comment tu comptes l'utiliser dans le systéme au final. A partir de là tu pourras dire static ou pas static.
Oui effectivement...


Dernière édition par Ibn Nacer le Mar 23 Déc - 20:48, édité 1 fois

Ibn Nacer

Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 73 Empty Re: Projet de dictionnaires arabes

Message par Ibn Nacer Mar 23 Déc - 20:07

Adel Medine a écrit:Les ArrayList c'est simple. C'est une collection de données en fait. Il existe pleins de classes fournis en Java ou .NET en ce qui concerne les collections de données.

En l'occurrence on peut mettre n'importe quel type d'objet dans une collection, et même faire des collections hybrides, et on spécifie cela avec
Code:
<?>

où le ? est remplacé par le type de données que l'on souhaite dans le tableau/la liste. On appelle cela des génériques en programmation.

Dans mon exemple,
Code:
 Arraylist<String>

, c'est une collection de String c'est à dire une collection de chaîne de caractères. Il suffit d'appeler la méthode add de la collection en lui donnant en paramètre la chaîne de caractères à ajouter et cela l'ajoute.
Bâraka Allâhu fîka. Oui cela ne me semble pas trop compliqué à comprendre, c'est juste que je ne l'avais pas encore abordé mais cela viendra inchâ-a Allâh.

Ibn Nacer

Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 73 Empty Re: Projet de dictionnaires arabes

Message par Adel Medine Mar 23 Déc - 21:09

Les classes qui jouent le rôle de collection de données comme ArrayList est un bon exemple d'utilisation de classes et méthodes non static

StringBuilder aussi ce n'est pas une classe static et/ou avec méthodes static. Le principe d'un StringBuilder permet surtout d'allouer à l'avance ou à la volée sa prévision d'utilisation de la mémoire. Le code source est libre et accessible il me semble que tu devrais trouver le code source de cette classe en Java ou .NET

Concernant le stockage en mémoire des classes static et des classes instanciables (une classe static n'est pas instanciable) cela ne se fait pas dans la même zone de mémoire. 

Il y a 3 zones de mémoires différentes : une pour les static, les globales et les constantes, une zone mémoire pour les objet instanciés le Heap(un tas) et une zone mémoire pour le pipeline d’exécution la Stack(la pile)

Sur le Heap sont mis les objets créés dynamiquement quand tu utilises l'opérateur new. La classe static dans la zone de mémoire static. Sur la Stack tu retrouveras les paramètres passés aux méthodes par exemple.

Il y a pleins de long tutoriaux pour expliquer tout cela car c'est très vaste comme sujet la mémoire. J'essaie juste de te donner quelques principes fondamentaux et te rediriger ensuite.

Adel Medine

Messages : 643
Points : 655
Date d'inscription : 09/09/2013

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 73 Empty Re: Projet de dictionnaires arabes

Message par Ibn Nacer Mar 23 Déc - 21:41

Oui la mémoire c'est tout un sujet...

Sinon pour StringBuilder elle n'est pas statique mais c'était pour faire la comparaison...

Exemple :

Plutôt que d'utiliser un String comme ça :
Code:
String str = new String("") ;
for(int i = 0; i < 100; i++)
   str += i + " ";
System.out.println(str);

On utilisera un StringBuilder comme ça :
Code:
StringBuilder strB = new StringBuilder();
for(int i = 0; i < 100; i++)
  strB.append(i + " ");
System.out.println(strB.toString());

Car à chaque exécution de str += i + " "; un string est "crée" (un string est non mutable contrairement à un StringBuilder).

Je disais ça pour faire la comparaison avec la méthode Devocalise, là aussi si celle-ci est statique on évite de "créer" une instance à chaque tour de boucle.

Je ne sais pas si tu vois ce que je veux dire...

PS : Je dis "un string est "crée"..." mais si ça se trouve c'est plus que ça, il est possible que pour chaque addition un string soit "créé"...

Ibn Nacer

Messages : 1990
Points : 2234
Date d'inscription : 04/09/2011

Revenir en haut Aller en bas

Projet de dictionnaires arabes - Page 73 Empty Re: Projet de dictionnaires arabes

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 73 sur 90 Précédent  1 ... 38 ... 72, 73, 74 ... 81 ... 90  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum