Vous êtes sur la page 1sur 11

Les méthodes de classe

Chapitre 5 : Les méthodes de classe


I. Introduction :
Les méthodes en Java (fonctions dans d’autres langages) permettent de factoriser le code et de
le rendre plus lisible. En Java, il existe énormément méthodes présentent dans des objets. Ces
méthodes peuvent être utiliser directement ou bien on peut être amenés parfois à en modifier le
comportement. Donc, on peut classer les méthodes en 2 familles : les natives (prédéfinies) et les
nôtres (qu’on va créer nous-même).

II. Quelques Méthodes Utiles :


II.1 Les méthodes de la classe Math :

La classe java.lang.Math contient une série de méthodes et variables mathématiques. Comme la


classe Math fait partie du package java.lang, elle est automatiquement importée. De plus, il n'est
pas nécessaire de déclarer un objet de type Math car les méthodes sont toutes static.
Exemple : Calculer et afficher la racine carrée de 3
public class Math1 {
public static void main(String[] args) {
System.out.println(" = " + Math.sqrt(3.0));
}
}

Résultat : 1.7320508075688772

1. Les variables de classe :


PI représente pi dans le type double ( 3,14159265358979323846 )
E représente e dans le type double ( 2,7182818284590452354 )

public class Math2 {


public static void main(String[] args) {
System.out.println(" PI = "+Math.PI);
System.out.println(" E = "+Math.E);
}
}

2. Les fonctions trigonométriques :

Les méthodes sin(), cos(), tan(), asin(), acos(), atan() sont déclarées :

public static double fonctiontrigo(double angle)

Les angles doivent être exprimés en radians. Pour convertir des degrés en radian, il suffit de les
multiplier par PI/180.

3. Les Fonctions de comparaison :

Réalisé par : Bassem Boughzala (ISET RADES) Page 1/11


Les méthodes de classe

max (n1, n2)


min (n1, n2)
Ces méthodes existent pour les types int, long, float et double : elles déterminent respectivement
les valeurs maximales et minimales des deux paramètres.
Exemple :

public class Math1 {


public static void main(String[] args) {
System.out.println(" le plus grand = " + Math.max(5, 10));
System.out.println(" le plus petit = " + Math.min(7, 14));
}
Résultat :
le plus grand = 10
le plus petit = 7

4. Les arrondis :
La classe Math propose plusieurs méthodes pour réaliser différents arrondis.

4.1 la méthode round(n) :


Pour les types float et double, cette méthode ajoute 0,5 à l'argument et restitue la plus
grande valeur entière (int) inférieure ou égale au résultat.

Exemple :
public class Arrondis1 {
static double[] valeur = {-5.7, -5.5, -5.2, 5.0, 5.0, 5.2, 5.5, 5.7};
public static void main(String[] args) {
for (int i = 0; i < valeur.length; i++) {
System.out.println("round("+valeur[i]+") = "+Math.round(valeur[i]));
}
}
}
Résultat :
1.round(-5.7) = -6
2.round(-5.5) = -5
3.round(-5.2) = -5
4.round(-5.0) = -5
5.round(5.0) = 5
6.round(5.2) = 5
7.round(5.5) = 6
8.round(5.7) = 6

4.2 la méthode rint(double) :


Cette méthode effectue la même opération mais renvoie un type double.
Exemple :
public class Arrondis2 {
static double[] valeur = {-5.7, -5.5, -5.2, -
5.0, 5.0, 5.2, 5.5, 5.7 };
public static void main(String[] args) {
for (int i = 0; i < valeur.length; i++) {
System.out.println("rint("+valeur[i]+") = "+Math.rint(valeur[i]));
} } }

Réalisé par : Bassem Boughzala (ISET RADES) Page 2/11


Les méthodes de classe

Résultat :
rint(-5.7) = -6.0
rint(-5.5) = -6.0
rint(-5.2) = -5.0
rint(-5.0) = -5.0
rint(5.0) = 5.0
rint(5.2) = 5.0
rint(5.5) = 6.0
rint(5.7) = 6.0

4.3 La méthode floor(Double) :


Cette méthode renvoie l'entier le plus proche inférieur ou égal à l'argument

Exemple :
public class Arrondis3 {
static double[] valeur = {-5.7, -5.5, -5.2, -
5.0, 5.0, 5.2, 5.5, 5.7 };
public static void main(String[] args) {
for (int i = 0; i < valeur.length; i++) {
System.out.println("floor("+valeur[i]+") = "+Math.floor(valeur[i]));
}
}
}
Résultat :
floor(-5.7) = -6.0
floor(-5.5) = -6.0
floor(-5.2) = -6.0
floor(-5.0) = -5.0
floor(5.0) = 5.0
floor(5.2) = 5.0
floor(5.5) = 5.0
floor(5.7) = 5.0

4.4 La méthode ceil(double):


Cette méthode renvoie l'entier le plus proche supérieur ou égal à l'argument

public class Arrondis4 {


static double[] valeur = {-5.7, -5.5, -5.2, -
5.0, 5.0, 5.2, 5.5, 5.7 };
public static void main(String[] args) {
for (int i = 0; i > valeur.length; i++) {
System.out.println("ceil("+valeur[i]+") = "+Math.ceil(valeur[i]));
}
}
}
Résultat :
ceil(-5.7) = -5.0
ceil(-5.5) = -5.0
ceil(-5.2) = -5.0
ceil(-5.0) = -5.0
ceil(5.0) = 5.0
ceil(5.2) = 6.0
ceil(5.5) = 6.0
ceil(5.7) = 6.0

Réalisé par : Bassem Boughzala (ISET RADES) Page 3/11


Les méthodes de classe

4.5 La méthode abs(X) :


Cette méthode donne la valeur absolue de x (les nombres négatifs sont convertis en leur
opposé). La méthode est définie pour les types int, long, float et double.

Exemple :
public class Math1 {
public static void main(String[] args) {
System.out.println(" abs(-5.7) = "+abs(-5.7));
}
}

Résultat : abs(-5.7) = 5.7

5. La méthode IEEEremainder(double,double) :

Cette méthode renvoie le reste de la division du premier argument par le deuxième

Exemple :
public class Math1 {
public static void main(String[] args) {
System.out.println(" reste de la division de 10 par 3 = "
+ Math.IEEEremainder(10.0, 3.0));
}
}

Résultat : reste de la division de 10 par 3 = 1.0

6. Les Exponentielles et Puissances :

6.1 La méthode pow(double,double) :


Cette méthode élève le premier argument à la puissance indiquée par le second.

Exemple :
public static void main(String[] args) {
System.out.println(" 5 au cube = "+Math.pow(5.0, 3.0) );
}

Résultat : 5 au cube = 125.0

6.2 La méthode sqrt(double) :


Cette méthode calcule la racine carrée de son paramètre.

Exemple :
public static void main(String[] args) {
System.out.println(" racine carree de 25 = "+Math.sqrt(25.0) );
}

Résultat : racine carree de 25 = 5.0

6.3 La méthode exp(double) :


Cette méthode calcule l'exponentielle de l'argument

Réalisé par : Bassem Boughzala (ISET RADES) Page 4/11


Les méthodes de classe

Exemple :
public static void main(String[] args) {
System.out.println(" exponentiel de 5 = "+Math.exp(5.0) );
}

Résultat : exponentiel de 5 = 148.4131591025766

6.4 La méthode log(double) :


Cette méthode calcule le logarithme naturel de l'argument

Exemple :
public static void main(String[] args) {
System.out.println(" logarithme de 5 = "+Math.log(5.0) );
}

Résultat : logarithme de 5 = 1.6094379124341003

7. La génération des nombres aléatoires :


La méthode random() renvoie un nombre aléatoire compris entre 0.0 et 1.0.

Exemple :
public static void main(java.lang.String[] args) {
System.out.println(" un nombre aléatoire = "+Math.random() );
}

Résultat : un nombre aléatoire = 0.8178819778125899

II.2 Les méthodes concernant les chaines de caractères :

1. toLowerCase() : conversion des caractères en minuscule

Exemple :
String chaine = new String("COUCOU TOUT LE MONDE !"), chaine2 = new String();
chaine2 = chaine.toLowerCase();

Résultat : coucou tout le monde !

2. toUpperCase() : Permet de convertir une chaine en son équivalent majuscule

Exemple :
String chaine = new String("coucou bonjour"), chaine2 = new String();
chaine2 = chaine.toUpperCase();

Résultat : COUCOU BONJOUR

3. length() : Renvoie la longueur d'une chaîne de caractères (en comptant les espaces).
Exemple :
String chaine = new String("coucou ! ");
int longueur = 0;
longueur = chaine.length();
System.out.println("La chaine contient " + longueur + " caractères") ;

Réalisé par : Bassem Boughzala (ISET RADES) Page 5/11


Les méthodes de classe

Résultat : La chaine contient 9 caractères

4. equals() : permet de vérifier si 2 chaines de caractères sont identiques.

Exemple :
String str1 = new String("coucou"), str2 = new String("toutou");
if (str1.equals(str2))
System.out.println("Les deux chaînes sont identiques !");
else
System.out.println("Les deux chaînes sont différentes !");

Remarque : il est possible aussi de demander la vérification de l’inégalité grâce à l’opérateur de


négation « ! » if( !str1.equals(str2))

5. substring() : Cette méthode extrait une partie d'une chaîne de caractères. Elle prend deux
entiers en arguments : le premier définit le premier caractère (inclus) de la sous-chaîne à
extraire, le second correspond au dernier caractère (exclu) à extraire. Là encore, le premier
caractère porte le numéro 0.

Exemple :
String chaine = new String("la paix niche"), chaine2 = new String();
chaine2 = chaine.substring(3,13);
System.out.println("chaine2);

Résultat : paix niche

6. indexOf ()– LastIndexOf() : La première fonction « indexOf() » explore une chaîne de


caractères à la recherche d'une suite donnée de caractères, et renvoie la position (ou l'index)
de la sous-chaîne passée en argument. Elle explore à partir du début de la chaîne. La deuxième
fonction « lastIndexOf() » explore en partant de la fin, mais renvoie l'index à partir du début
de la chaîne. Ces deux méthodes prennent un caractère ou une chaîne de caractères comme
argument, et renvoient un int.

Exemple :
String mot = new String("anticonstitutionnellement");
int n = 0;
n = mot.indexOf('t'); //n vaut 2
n = mot.lastIndexOf('t'); //n vaut 24
n = mot.indexOf("ti"); //n vaut 2
n = mot.lastIndexOf("ti"); //n vaut 12
n = mot.indexOf('x'); //n vaut -1 (car le caractère ne se trouve pas dans la chaine)

7. replace(ch1,ch2) ou replaceAll(ch1, ch2) : ces 2 méthodes permettent de remplacer toutes


les occurrences de la chaine ch1 par ch2.

Exemple :
String ch1 = "Bonjour" ;
System.out.println(ch1.replace("jour","soir") );

Résultat : Bonsoir

Réalisé par : Bassem Boughzala (ISET RADES) Page 6/11


Les méthodes de classe

8. replaceFirst(ch1,ch2) : cette méthode permet de remplacer la première occurrence de


ch1 dans ch2.

Exemple :
String ch1 = "BonBon" ;
System.out.println(ch1.replaceFirst("Bon","Con") );

Résultat : ConBon

9. trim() : retourne une chaine de la quelle les caractères espaces au début et à la fin de la
chaine ont été retirés.

Exemple :
String ch1 = " Bonjour mesa mis! " ; // cette chaine comporte 5 espaces au début et 3 à la fin
System.out.println(" La longueur de cette chaine = " +ch1.length());
ch1= ch1.trim();
System.out.println(" La longueur de cette chaine = " +ch1.length());

Résultat :
La longueur de cette chaine = 25
La longueur de cette chaine = 17

10. compareTo() et compareToIgnorCase() : ces 2 méthodes retournent un entier. Négatif


si la première chaine comparée est inférieure à la deuxième chaine. 0 si elles sont égales
et positif si la première chaine comparée est supérieure à la deuxième chaine. La
deuxième méthode ignore la casse.

Exemple :
String s1 = "Bonjour" ;
String s2 = "le monde !";
int c = s1.compareTo(s2); // c = -42 car le code Ascii de 'B' =66 et celui de 'l' = 108
c = s2.compareToIgnoreCase(s1); // c = 10 code Ascii de 'L' – 'B'

11. startsWith() endsWith() : la première méthode renvoie "true" si la chaine commence


par le caractère indiqué par la méthode sinon elle renvoie "false". La deuxième méthode
renvoie "true" si la chaine se termine par le caractère indiqué par la méthode sinon elle
renvoie "false".

Exemple :
String s1 = "Bonjour" ;
String s2 = "le monde !";
boolean b = s1.startsWith("a"); // b=false
b = s2.endsWith("!"); // b = true

12. La méthode split() : découpe une chaine de caractères à l'aide d'une expression régulière
passé en paramètre. Le résultat du découpage est retourné dans un tableau de string.

Réalisé par : Bassem Boughzala (ISET RADES) Page 7/11


Les méthodes de classe

Exemple :
String s = "15/05/2020" ;
String t[] = s.split("/");
for (String ch : t)
System.out.println(ch);

13. La méthode valueOf() : cette méthode renvoie une chaine correspondant à la valeur donnée
en argument

Exemple :
String.valueOf(2) → renvoie "2"
L'opération inverse peut-être réalisée par :
int i = Integer.parseInt("2");

III. Créer sa propre méthode :


L'utilisateur a la possibilité de créer ses propres méthodes. Ces méthodes doivent être placées à
l'extérieur de la méthode main mais tout de même dans la classe.

Exemple 1 : Ecrire un programme Java qui appelle une fonction somme permettant de calculer
la somme de deux entiers a et b

package methode_propre_1;
import java.util.Scanner;
public class Methode_propre_1 {
public static void main(String[] args) {
int a,b;
Scanner s =new Scanner(System.in);
System.out.println("Donner deux valeurs : ");
a=s.nextInt();
b=s.nextInt();
System.out.println("la somme = " + somme(a,b));
}
static int somme(int a, int b)
{
return(a+b);
}
}

Remarques :

- Les méthodes ne sont pas limitées en nombre de paramètres.


- Il en existe trois grands types :
• Les méthodes qui ne renvoient rien. Les méthodes de ce type n'ont pas
d'instruction return, et elles sont de type void.
• Les méthodes qui retournent des types primitifs (double, int...). Elles sont de type
double, int, char... Celles-ci possèdent une instruction return.
• Les méthodes qui retournent des objets. Par exemple, une méthode qui retourne
un objet de type String. Celles-ci aussi comportent une instruction return.

Réalisé par : Bassem Boughzala (ISET RADES) Page 8/11


Les méthodes de classe

Exemple 2 : Ecrire un programme Java qui permet d'arrondir le double "A" avec "B" chiffres
après la vigule.

package arrondissement;
import java.util.Scanner;
public class Arrondissement {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
double A;
int B;
System.out.println("Donner un réel : ");
A = s.nextDouble();
System.out.println("Donner un entier : ");
B = s.nextInt();
System.out.println("A = "+arrondi(A,B));
}
static double arrondi(double A, int B)
{
return (double) ((int) (A * Math.pow(10, B) + 0.5)) /
Math.pow(10, B);
}
}

Exemple 3 : Ecrire un programme java qui appelle une méthode permettant d'afficher le contenu
du tableau.

Exemple :
package parcourir_tableau;
public class Parcourir_tableau {
public static void main(String[] args) {
String[] tab = {"toto", "tata", "titi", "tete","tutu"};
parcourirTableau(tab);
}
static void parcourirTableau(String[] tabBis)
{
for(String str : tabBis) System.out.println(str);
}
}

IV. La Surcharge des méthodes :


La surcharge de méthode consiste à garder le nom d'une méthode et à changer la liste ou le type
de ses paramètres.
Prenons l'exemple précédent, nous voulons que notre méthode parcourirTableau puisse
parcourir n'importe quel type de tableau (par exemple : un tableau d'entiers, ou bien un tableau
de double voir même un tableau à 2 dimensions, etc.). Pour cela, nous devons donc surcharger
notre méthode afin qu'elle puisse travailler indépendamment du type de tableau (int, double, char,
String ou même une matrice).

Exemple :
package surcharge_Methode;

Réalisé par : Bassem Boughzala (ISET RADES) Page 9/11


Les méthodes de classe

public class surcharge_Methode


{
public static void main(String[] args)
{
String[] tab = {"toto", "tata", "titi", "tete","tutu"};
int[] tabint = {1, 2, 3, 4, 5};
double[] tabdouble = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0};
String [][] matrice = {{"A", "B", "C"},{"D", "E", "F"}};
parcourirTableau(tab);
parcourirTableau(tabint);
parcourirTableau(tabdouble);
parcourirTableau(matrice);
}

static void parcourirTableau(String[] tabBis)


{
for(String str : tabBis)
System.out.print(str + " ");
System.out.println("\n");
}

static void parcourirTableau(int[] tab)


{
for(int str : tab)
System.out.print(str + " ");
System.out.println("\n");
}

static void parcourirTableau(double[] tab)


{
for(double str : tab)
System.out.print(str + " ");
System.out.println("\n");
}
static void parcourirTableau(String[][] tab)
{
for(String tab2[] : tab)
{
for(String str : tab2)
System.out.print(str + "\t");
System.out.print("\n");
}
}
}

Résumé :
- Une méthode est un morceau de code réutilisable qui effectue une action bien définie.
- Les méthodes se définissent dans une classe.
- Les méthodes ne peuvent pas être imbriquées. Elles sont déclarées les unes après les
autres.

Réalisé par : Bassem Boughzala (ISET RADES) Page 10/11


Les méthodes de classe

- Une méthode peut être surchargée en modifiant le type de ses paramètres, leur nombre,
ou les deux.
- Pour Java, le fait de surcharger une méthode lui indique qu'il s'agit de deux, trois ou X
méthodes différentes, car les paramètres d'appel sont différents. Par conséquent, Java ne
se trompe jamais d'appel de méthode, puisqu'il se base sur les paramètres passés à cette
dernière.

Réalisé par : Bassem Boughzala (ISET RADES) Page 11/11