Académique Documents
Professionnel Documents
Culture Documents
La classe String est une classes dont les objets sont immuables : ils ne
peuvent pas changer de valeur.
Les classes StringBuffer et StringBuilder produisent des objets qui peuvent
changer de valeur. Ces deux classes ont exactement les mêmes méthodes.
o Les méthodes de la classe StringBuffer sont synchronisées, et peuvent
être utilisées par plusieurs thread sur une même chaîne de caractères.
o Les méthodes de la classe StringBuilder ne sont pas synchronisées,
elles sont donc plus rapides que celle de la classe StringBuffer, mais ne
sont pas «thread safe».
1 String
String(char[] value)</td
String() Construit la chaîne vide
Construit une chaîne de caractères à
String(byte[] bytes)
partir d’un tableau d’octets
String(byte[] bytes, int offset, int Construit une chaîne de caractères à
length) partir d’une partie de tableau d’octets
Construit une chaîne de caractères à
String(byte[] bytes, int offset,
partir d’une partie de tableau d’octets,
int length, String enc)
et d’un encodage
Construit une chaîne de caractères à
String(byte[] bytes, String enc) partir d’un tableau d’octets, et d’un
encodage
Construit une chaîne de caractères à
String(char[] value, int offset, int count) partir d’une partie de tableau de
caractères
Construit une chaîne à partir d’une
String(String value)
autre chaîne.
Construit une chaîne à partir d’une
String(StringBuffer buffer)
autre chaîne de type StringBuffer.
Remarque
C'est pour celà que la comparaison avec l'opérateur == fonctionne pour les chaines
de caractères du pool !
String s1 = "abcde";
String s2 = "abcde";
String s3 = new String (s2);
String s4 = s3.intern();
System.out.println(s1==s2);// true les deux sont dans le pool
System.out.println(s1==s3);// false
System.out.println(s1==s4);// true les deux sont dans le pool
2 )StringBuffer, StringBuilder
Les StringBuffer sont utilisés pour compiler l’opérateur + de la classe String. Par
exemple :
x = "a" + 4 + "c"
est compilé en :
x = newStringBuffer().append("a").append(4).append("c").toString()
Ces deux classes ont deux attributs :
2) La notion d'héritage
Avec Java, l'arborescence est stricte, c'est-à-dire qu'une classe donnée ne peut
possèder qu'une seule superclasse (l'héritage est dit simple contrairement à des
langages comme le C++, pour lesquels un héritage dit multiple est possible). Par
contre, une classe peut possèder un nombre illimité de sous-classes.
Lors de l'instanciation d'une classe, celle-ci hérite de (cela signifie qu'elle reçoit)
l'ensemble des propriétés et des méthodes de sa superclasse, qui elle-même
hérite d'une éventuelle superclasse, etc.
Par conséquent le travail principal du programmeur Java consiste à concevoir une
hiérarchie de classe, c'est-à-dire organiser les classes de telles façon que les
propriétés et méthodes communes à plusieurs classes soient placées dans une
superclasse.
class Ccm {
// Corps de la classe
}
Par défaut une classe hérite de la "super-superclasse" nommée Object. Pour faire
hériter une classe d'une superclasse, Java fournit le mot-clé extends, c'est-à-dire
que les quelques lignes de code ci-dessus sont équivalentes à:
class Ccm extends Object {
// Corps de la classe
}
Le mot-clé super
Au même titre que le mot-clé this permet de faire référence à l'objet en cours, le
mot-clé super permet de désigner la superclasse, c'est-à-dire qu'à l'aide du mot-
clé super, il est possible de manipuler les données membres et les méthodes de la
superclasse.
super.nom_de_la_propriete
super.nom_de_la_methode()
super(parametre1,parametre2,...)