Ces classes ne nécessitent pas d'instruction import.
Cette classe contient des méthodes de calcul sur les entiers et les réels
conformes à la norme IEEE 754 ce qui assure leur portabilité sur les clients.
Elle
contient également des approximations (en double) de e et de p.
Toutes les méthodes doivent être préfixées par le nom de la classe.
Les fonction abs( x ), min(x,y) et max(x,y ) admettent les types int, long, float et double comme arguments.
int i,j = -4;
double a = 4.2,
b = Math.PI, c;
i = Math.abs(j); //préfixer
par Math !!!
c = Math.min(a,b);
Les fonctions trigonométriques, exponentielle, logarithme et puissance utilisent uniquement des doubles comme arguments. Si on utilise des arguments illégaux, les méthodes de la classe Math génèrent une exception. Elles retournent NaN (Not a Number).
Ces fonctions travaillent toujours sur des valeurs en radians. On trouve
les fonctions :
sin (double) : sinus de l'argument exprimé en radian
cos (double)
: cosinus
tan (double) : tangente
asin(double) : arc sinus (valeur dans l'intervalle [-p
/ 2, + p / 2])
acos(double) : arc
cos (valeur dans l'intervalle [0, + p]
atan (double)
: arc tangente (valeur dans l'intervalle [-p / 2,
+ p / 2])
atan2(double) :
cette dernière fonction retourne la valeur (en radians) de l'angle théta des
coordonnées polaires (r et théta) du point correspondant aux coordonnées cartésiennes
qui sont passées comme arguments.
double theta = Math.atan2(10,10); // theta = 0.785398... (45°)
exp (double) : exponentielle
log (double) : logarithme
népérien
sqrt (double) : racine carrée
pow (double, double)
: élévation du premier argument à la puissance dont la valeur est le second
argument. Si le premier argument est nul, le second
doit être strictement positif. Si le premier argument est strictement négatif,
le second doit être une valeur entière.
random (génération à chaque appel d'un nombre pseudo-aléatoire compris
entre 0 et 1.0).
(Il existe également dans le package java.util une classe
Random qui permet une gestion plus complète des nombres aléatoires.)
On dispose aussi de trois méthodes
pour les arrondis : ceil (arrondi à l'entier supérieur), floor
(arrondi à l'entier inférieur), round (arrondi par rapport à 0,5). Ces
trois méthodes admettent des "double" comme arguments et elles retourne
un double sans partie décimale et non pas un entier. round admet aussi
des arguments de type "float" auquel cas la valeur retournée est du
type "int".
double x = 0.751, z;
z = Math.ceil
( x ); //
z = 1.0
z = Math.floor (
x ); // z = 0.0
z
= Math.round ( x ); //
z = 1.0
Selon les auteurs ces classes sont aussi nommées types composites ou wrappers.
En
plus des types simples boolean, byte, char, double, float, short,
int, long , il existe en JAVA des classes enveloppes Boolean,
Character, Double, Float, Integer, Long, Number (une classe abstraite)
et String. qui concernent
des objets. Ces classes ont principalement été
développées pour effectuer des conversions de types. Alors que les types simples
sont manipulables avec les opérateurs du langage, les objets des classes enveloppes
sont accessibles par des méthodes et nécessitent l'usage d'un constructeur.
Beaucoup de ces méthodes sont déclarées static (méthodes de classe) et leurs noms doivent de préférence être préfixés par le nom de la classe. Les quelques méthodes d'instance doivent être préfixées par le nom de la variable d'instance.
Voici la description des méthodes les plus utilisées de cette classe
:
Constructeur : On définit un objet Integer à partir d'un entier
(int) ou d'un objet String.
int i = 10;
String s =
"10";
Integer I = new Integer(i);
Integer J = nex Integer(s);
doubleValue( ) : méthode d'instance qui permet de convertir un objet
Integer en double.
floatValue( ) : méthode d'instance qui permet de
convertir un objet Integer en float.
intValue( ) : méthode d'instance
qui permet de convertir un objet Integer en int.
parseInt( ) : méthode
de classe qui convertit une chaîne en entier de type int.
valueOf ( )
: méthode de classe qui convertit le premier argument (chaîne) en un objet Integer
dans la base de numération donnée par le second argument. Si la base est omise
la conversion est faite en base 10.
toString ( ) : méthode de classe
qui convertit le premier argument (objet Integer) en une chaîne dans la
base de numération donnée par le second argument. Si la base est omise la conversion
est faite en base 10.
toBinaryString ( ) : méthode de classe qui convertit
un objet Integer en une chaîne dans la base 2. [analogue à toString(I , 2)]
On trouvera dans le listing suivant des exemples d'application de ces méthodes.
import java.applet.*; public void
init() |
La classe Long possède des méthodes analogues. Consulter la documentation de votre version JAVA.
Constructeur : on définit un objet Double à partir d'un réel
(double) ou d'une chaîne.
intValue( ) , floatValue( ) , longValue( ) et
doubleValue ( ) sont des méthodes d'instance
qui permettent de convertir un objet Double en int, float, long
ou double.
valueOf ( )
: méthode de classe qui convertit une chaîne en un objet Double.
Cette méthode peut être combinée
avec la méthode doubleValue( ) pour convertir
une chaîne en double.
d = Double.valueOf(s).doubleValue( );
la partie soulignée assure la conversion de la chaîne en Double, la seconde
partie de l'instruction assure la conversion du Double en double.
toString ( ) : méthode de classe
qui convertit un objet Double en une chaîne.
doubleToLongBits ( ) : méthode de classe qui convertit
un double en sa représentation binaire au format IEEE. longBitsToDouble(
) assure la conversion inverse.
On trouvera dans le listing suivant des exemples d'application de ces méthodes.
import java.applet.*; public void
init() |
La classe Float possède des méthodes analogues. Consulter la documentation de votre version JAVA.
Constructeur : Le constructeur convertit un char en Character..
charValue ( )
: méthode d'instance qui convertit un Character en char.
toString ( ) : méthode de classe
qui convertit un objet Character en chaîne.
digit( ) : méthode de
classe qui retourne la valeur numérique du Character passé comme premier argument
en utilisant le second argument comme base de numération [bases de 2 (MIN_RADIX)
à 36 (MAX_RADIX)]. Si la conversion est impossible, la méthode retourne -1.
forDigit(
) : méthode de classe qui retourne le char correspondant à l'entier passé
comme premier argument en utilisant le second argument comme base de numération
(bases de 2 à 36). Si la conversion est impossible, la méthode retourne le char
null.
isDigit( ), isLowercase( ), isUpperCase( ), isSpace( ) sont
des méthodes de classes booléennes qui testent si le char passé en argument
est un chiffre, une minuscule, une majuscule ou un espace.
toLowerCase(
) et toUpperCase( ) : méthodes de classe qui modifient si nécessaire la
casse du char passé en argument.
On trouvera dans le listing suivant des exemples d'application de ces
méthodes.
import java.applet.*; public void
init() |
Une chaîne est une suite de caractères placés entre deux guillemets ( "
).
Les chaînes String ont une longueur fixe : toute nouvelle affectation
d'une chaîne existante entraîne la création par le compilateur d'une nouvelle
chaîne dans un emplacement mémoire différent. Si les chaînes String sont faciles
à utiliser, elles ne génèrent pas un code efficace. La classe StringBuffer plus
lourde à mettre en oeuvre crée un code bien plus efficace que les String.
Contrairement
aux autres objets JAVA, il n'est pas nécessaire d'utiliser new pour construire
une chaîne String.
Les codes String
s = "ABCDE"; et String
s = new String("ABCDE"); sont équivalents.
Examinons quelques
méthodes utiles de cette classe :
length ( )
: méthode d'instance qui retourne la longueur de la chaîne.
charAt ( ) : méthode d'instance
qui retourne le char qui occupe dans la chaîne s la position précisée par l'argument.
Le premier caractère occupe la position 0 et le dernier la position s.length(
) -1.
concat( ) : cette méthode d'instance concatène la chaîne passée comme argument
à la chaîne utilisée comme préfixe. Pour concaténer deux chaînes il est plus
simple d'utiliser le signe +.
equals(
) : méthode booléenne d'instance qui compare la chaîne passée comme argument
à la chaîne utilisée comme préfixe.
Attention
on ne peut pas comparer l'égalité de deux chaînes avec "= = ". Pour
comparer s1 et s2 il faut utiliser if (s1.equals(s2))
et non pas if (s1 == s2)
indexOf( ) : méthode d'instance qui retourne la
position de la première occurrence du char passée comme argument
dans la chaîne utilisée comme préfixe. La méthode retourne -1 si le caractère
n'existe pas. La même méthode existe avec deux arguments, le second indique
ou commencer la recherche. Les mêmes méthodes existent également avec comme
premier argument une sous-chaîne de caractères. Les quatre formes de cette méthode
existent également pour la méthode analogue lastIndexOf( ) qui retourne
la position de la dernière occurrence de la partie cherchée.
substring
( ) : cette méthode d'instance permet d'extraire une sous-chaîne de la chaîne
utilisée comme préfixe. Dans la première syntaxe, la recherche commence à partir
de la valeur passée comme argument. Dans la seconde, la recherche s'effectue
entre les deux valeurs passées en arguments.
toLowerCase(
) et toUpperCase( ) : méthodes d'instance qui modifient si nécessaire la
casse de la chaîne utilisée comme préfixe.
trim ( ) : méthode d'instance
supprime les caractères "espace" placés en début et en fin de chaîne.
valueOf
( ) : méthodes de classe qui assurent la conversion de l'argument (booléen,
char, int, double, float, double) en chaîne.
Double.toString(
), Integer.toString( ) ... exécutent la même opération.
Remarque
: Dans la méthode drawString ( ) la conversion d'un littéral x
est réalisée automatiquement en faisant suivre la chaîne initiale (qui peut
être réduite à "") de + x. Cette facilité a déjà
été utilisée dans toutes les applets données en exemple.
On trouvera dans le listing suivant des exemples d'application de ces
méthodes.
import java.applet.*; |
Lors de la création d'un objet StringBuffer, le compilateur réserve une zone
mémoire supérieure à la longueur de la chaîne initiale : il est possible de
modifier la chaîne sans procéder à une nouvelle allocation mémoire. On
peut considérer qu'un objet StringBuffer est un tableau de caractères accessibles
séparément par leurs indices [méthodes charAt( ) et setCharAt( )].
Remarques
: Lors de l'usage du signe + pour réaliser la concaténation de chaînes de type
String, le compilateur génére un code utilisant la méthode append ( ) de
la classe StringBuffer.
Les méthodes append( ) et insert( ) admettent comme
arguments tous les littéraux, des chaînes et des objets.
On trouvera dans le listing suivant des exemples d'application des méthodes de cette classe.
import java.applet.*; public
void init() |