A.6 ANNEXE A : petite mise au point des notions acquises
Avant de continuer, il m' a semblé utile une petite mise au point.
Jusqu' ici, on a très souvent utilisé le mot fonction. Sachez que, dans certains cas, ce terme a été utilisé de façon incorrecte. Parce que une
fonction fournit toujours un résultat. A ce titre, toutes les fonctions de la classe Math sont de véritables fonctions. Aucun abus de langage
dans ce cas. Mais des "fonctions" qui ne fournissent pas de résultat n' en sont pas. Il existe une terminologie plus généralite : les méthodes
Une fonction est une méthode. Mais lorsqu' une méthode ne fournit pas de résultat, elle n' est pas une fonction. Un bon exemple : la fonction
fonction System.out.print() . Elle se contente d' afficher son argument. Elle n' est donc pas une fonction. A partir de maintenant,
nous parlerons de méthode. Le mot fonction doit être banni à partir de maintenant. Le mot méthode est utilisé dans la plupart des bouquins que
vous consulterez.
Le nom d' une variable, d' une classe, d' une fonction (oh pardon, d' une méthode), ou de quoi que ce soit d' ailleurs en programmation
s' appelle un identificateur . Rappelons qu' une variable est un espace mémoire succeptible de contenir une valeur. Pour affecter une
valeur à une variable, il est indispensable de la déclarer par un nom et un type : type nom = valeur;
Une constante n' est pas une variable. Mais comme une variable, une constante doit être déclarée par un type et un nom avant d' être affectée
par une valeur qui doit rester fixe pendant toute la durée du programme. Attention, avant le type et le nom, il faut commencer par écrire le mot clé final
pour déclarer une constante. Le nom d' une contante s' écrit avec toutes les lettres en majuscules. final type NOM = valeur;
Le contenu d' une variable, c' est à dire sa valeur, s' appelle un litéral. Avant d' utiliser une variable, il faut d' abord lui donner une
valeur initiale (on dit initialiser). Même si la valeur finale ne sera pas la valeur initiale.
Le contenu d' une méthode s' appelle la définition de cette méthode. La définition d' une méthode c' est l' ensemble de ses instructions.
La définition de la méthode principale main(), c' est l' ensemble des instructions d' un programme java.
Quand on affecte une valeur à une variable, la valeur doit être de même type que la variable. Si ce n' est pas le cas, 2 cas se présentent :
- Soit le type de la valeur est un sous-ensemble du type de la variable et la conversion se fait de façon implicite. Exemple : byte b = 125;
short s = b; Le type byte est un sous-ensemble du type short. Java convertit le type byte (b) en type short avant de l' affecter à s.
- Soit le type de la valeur est un sur-ensemble du type de la variable et dans ce cas, c' est le programmeur qui convertit explicitement le type
de la valeur en le type de la variable. Exemple : short s = 25; byte b = (byte)s; Le type de s est transformé en type byte avant d' être affectée
à la variable b. Lorsque la conversion ext explicite, il est possible qu' il y ait perte d' une partie de la valeur.
Le type byte est un sous-ensemble du type short qui lui même est un sous-ensemble du type int qui lui même est un sous-ensemble du type long qui
est un sous-ensemble du type float qui est un sous-ensemble du type double.
Le type char est un type numérique dont les valeurs vont de 0 à 255. Chaque caractère correspond à un nombre. Mais quand on le met dans une
variable de type char, à l' affichage, on a un caractère. Si on l' additionne avec un type numérique, on obtient forcément un type numérique.
char + char = int * char + byte = int * char + short = int * char + int = int *
char + long = long * char + float = float * char + double = double
byte + char <=> byte + byte <=> byte + short <=> byte + int <=> ça donne toujours un int
byte + long = long * byte + float = float * byte + double = double
short + (char ou byte ou short ou int ) donne toujours un int.
short + long = long * short + float = float * short + double = double
int + (char ou byte ou short ou int) = int
int + long = long * int + float = float * int + double = double
long + (char ou byte ou short ou int ou long ) donne toujours un long
long + float = float * long + double = double
float + (char ou byte ou short ou int ou long ou float) donnent toujours un float
float + double = double
double + (char ou byte ou short ou int ou long ou float ou double) donnent toujours un double
Vous vous rappelez lorsque je vous ai dit qu' en programmation structurée, lorsqu' on utilise une méthode (fonction) dans une classe qui n' est
pas celle dans laquelle elle est définie, on écrit le nom de la classe suivi d' un point se suivi du nom de la méthode(fonction).
En programmation orientée objet, on utilise une classe en écrivant le nom de l' objet, suivi d' un point, suivi du nom de la méthode. Bien
entendu, nous n' étudions pas encore la programmation orientée objet, mais nous sommes bien obligés d' anticiper un peu. Rassurez-vous, rien de
bien compliqué. La classe String est une classe issue de la programmation orientée objet. Ce qui n ' était pas le cas pour la classe Math.
Lorque toutes les méthodes d' une classe ont été déclarées avec le mot-clé static, la classe ne servira jamais à fabriquer les objets
(exemple : classe Math). Lorsqu' au moins une méthode d' une classe n' a pas été déclarée avec le mot-clé static , alors cette peut
servir à fabriquer des objets. C' est justement le cas de la classe String. Une variable de type String est donc une variable de type Objet. En
réalité, on dit plutôt une variable de type classe. La variable en question est un objet. Lorsque j' écris : String chaine = "bonjour"; chaine
est le nom de l' objet. Une méthode de la classe String permet de transformer toutes les lettres de la chaine de caractères en majuscules. Cette
méthode s' appelle toUpperCase(). Si je veux le contenu de la variable chaine soit "BONJOUR", c' est à dire toutes les letres en majuscules,
j' applique la méthode toUpperCase() à l' objet chaine en faisant ceci : chaine = chaine.toUpperCase(); Nom de l' objet, suivi d' un point, suivi du
nom de la méthode. Ceci dit, certaines méthodes de la classe String comme celles de nombreuses classes servant à fabriquer des objets sont
définies avec le mot-clé static. Dans ce cas, on fait comme avec la classe Math. On écrit le nom de la classe, suivi d' un point, suivi du nom
de la méthode. Pour cette raison, lorsque je vous parlerai d' une méthode, j' indiquerais la façon dont elle est déclarée. Avec ou sans le
mot-clé static.
Quand on utilise une méthode, il ne suffit pas de savoir si elle est déclarée avec le mot static ou pas pour l' utiliser de façon adéquate. Il
faut aussi savoir si oui ou non elle fournit un résultat. Ceci afin de savoir si on peut mettre ce résultat dans une variable. Dans le cas où elle
fournit un résultat, il faut aussi connaître le type de ce résultat. Ceci afin de ne pas mettre ce résultat dans n' importe quelle variable.
Histoire de savoir si on doit passer par l' opération de cast ou alors si la conversion peut se faire de façon automatique (implicite).
Exemple 1 : static double randon() : la méthode random() est déclarée avec le mot static (donc on l' utilise en écrivant Math.randon() ). Ensuite,
le mot double précède le nom de la méthode. Cela veut dire que la méthode fournit un résultat de type double. En plus, ses parenthèses sont
vides. La méthode ne requiert aucun argument.
Exemple 2 : String toUpperCase() : la méthode toUpperCase() de la classe String n' est pas déclarée avec le mot static. Donc, pour l' utiliser,
on est obligé de crée un objet. Puis de l' appliquer à la méthode en écrivant : nom de la méthode suivi d' un point et suivi du nom de la
méthode.
Sans plus tarder, passons en revue quelques méthodes de la classe String
Débutants Java - initiation à Java - Les bases de java
débutant java - initiation à Java
www.vivrenfrance.com
débutants java - initiation à Java - débuter en java - java débutant java - comment débuter en java-
programmer en java - débutants programmation - langage java pour débutants- cours de java pour débutants - cours de java -
.....