Ma question est dans l'intitulé. Peut-on considérer la classe String comme un wrapper ?
Je me pose cette question car Character est la classe wrapper du type primitif char et String est un tableau de char.
Merci de vos explications.
Ma question est dans l'intitulé. Peut-on considérer la classe String comme un wrapper ?
Je me pose cette question car Character est la classe wrapper du type primitif char et String est un tableau de char.
Merci de vos explications.
On peut le considérer, mais officiellement ce n'est pas le cas, pour plusieurs raisons, dont la principale étant que l'on ne peut modifier un String (c'est une classe immuable), tandis qu'on peut modifier un élément d'un tableau de char.
Merci dingoth pour votre réponse.
Mais les wrappers (les vrais) sont-ils aussi inmutables ? Autre question adjacente, les types primitifs sont-ils inmutables ?
Désolé si je semble ne pas avoir bien compris vos explications.
Merci
Oui, les types wrappers (Integer, Character, Float, ...) sont immutables.
On parle d'immutabilité au sujet d'une classe pour signifier qu'il est impossible de modifier l'état d'une instance d'une telle classe, une fois l'instance construite.
Pour un type primitif, la question ne se pose pas car une valeur d'un type primitif existe sans avoir besoin d'être instanciée. D'un autre côté, on est certain, par exemple, que la valeur 3, du type primitif int, est immutable et vaudra toujours 3 tout au long de l'exécution du programme![]()
pour les wrappers de type primitifs, tu a l'équivalence suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int i1=0; Integer i2= new Integer(0); i1=2; i2=new Integer(2)
Par contre avec les tableau de char tu as
qui n'a pas d'equivalence avec String.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char[] c= new char[] {'a','b','c','d','e'}; c[2]='U';
Maintenant, la définition d'un Wrapper est large, c'est un classe qui agit comme une coque autour d'une donnée. On peut très bien écrire n'importe quelle wrapper autout de n'importe quoi... Donc je suis pas sur de savoir ce que tu cherche.
Partager