Les méthodes en java • Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. • Une méthode pour être utilisée doit être déclarée en lui associant une signature : Un type d’accès à cette méthode(private; protected, rien, ou public). Un type de retour(int, float, boolean,…ou void si la méthode ne renvoie rien) Un identificateur( le nom de la méthode) Des paramètres en entrée public int somme (int param1, int param2) {…}
Méthodes avec valeur de retour et avec paramètres. public int somme (int param1, int param2) { int resultat = 0; resultat = param1 + param2; return resultat; }
Méthodes avec valeur de retour et avec paramètres. public class MaClass { public static void main(String args[]) { int variableSomme = somme(3,5); System.out.println(variableSomme); } public int somme (int param1, int param2) { int resultat = 0; resultat = param1 + param2; return resultat; } }
Méthodes sans valeur de retour et avec paramètres. public void somme (int param1, int param2) { int resultat = 0; resultat = param1 + param2; System.out.println(‘‘la somme des deux entiers est ’’ + resultat); }
Méthodes sans valeur de retour et avec paramètres. public class MaClass { public void somme (int param1, int param2) { int resultat = 0; resultat = param1 + param2; System.out.println(‘‘la somme des deux entiers est ’’ + resultat); } public static void main(String args[]) { somme(3,5); }
Méthodes sans valeur de retour et sans paramètres. public void somme () { int param1 = 2; int param2 = 6; int resultat = 0; resultat = param1 + param2; System.out.println(‘‘la somme des deux entiers est ’’ + resultat); }
Méthodes sans valeur de retour et sans paramètres. public class MaClass { //Déclaration de la méthode somme public void somme () { int param1 = 2; int param 2 =6; int resultat = 0; resultat = param1 + param2; System.out.println(‘‘la somme des deux entiers est ’’ + resultat); } public static void main(String args[]) { // Utilisation de la méthode somme somme(); }
Variables globales et variables locales public class MaClass { // variable globale static int variable = 5; //Déclaration de la méthode somme Public static void afficher () { //variable locale int variable = 2; System.out.println(variable); } public static void main(String args[]) { afficher(); }
La classe String : Déclaration et initialisation • Attention ce n’est pas un type de base. Il s'agit d'une classe définie dans l’API Java (Dans le package java.lang) String maChaine = "aaa"; // s contient la chaîne "aaa" String maChaine = new String("aaa"); // identique à la ligne précédente
La classe String : Gestion de la mémoire int x=3,y=3; x == y est vrai String s1="abc",s2="abc"; s1 == s2 est faux... Mémoire 330x768 Abc.... 0x852 Abc.... Quand on compare 2 variables d’un type de base on compare leur valeur. Quand on compare 2 objet avec les opérateurs on compare leur référence (leur adresse en mémoire). Introduction de la méthode equals() pour les objets : s1.equals(s2) est vrai
La classe String : Concaténation • La concaténation – l’opérateur + entre 2 String les concatène : String chaine1 = "Bonjour ! "; String chaine2 = "Comment vas-tu ?"; String chaine3 = chaine1 + chaine2; / * Concaténation de chaînes : chaine3 contient " Bonjour ! Comment vas-tu ?"
La classe String : Concaténation • La concaténation – La méthode concat() permet de concaténer 2 String: String chaine1 = "Bonjour ! "; String chaine2 = "Comment vas-tu ?"; String chaine3 = chaine1.concat(chaine2); / * Concaténation de chaînes : chaine3 contient " Bonjour ! Comment vas-tu ?"
La classe String : Test d’égalité La méthode equals() permet de tester si une chaine est égale à une autre : String chaine1 = "abc"; String chaine2 = "abc"; Boolean testEgaliteChaines = chaine1. equals (chaine2); System.out.println(testEgaliteChaines); true
La classe String : Longueur d’une chaine de caractères • Longueur d’un objet String : – méthode int length() : renvoie la longueur de la chaîne • String chaine = "bonjour"; • int n = chaine.length(); • System.out.println(n); 7
La classe String : Extraction d’une sous- chaine – méthode String substring(int debut, int fin) – extraction de la sous-chaine depuis la position debut jusqu’à la position fin non-comprise. • String chaine1 = "bonjour" • String chaine2 = chaine1.substring(0,3); • System.out.println(chaine2); "bon"
La classe String : Récupération d’un caractère dans une chaîne – méthode char charAt(int pos) : renvoie le caractère situé à la position pos dans la chaîne de caractère à laquelle on envoie se message String str1 = "bonjour"; char unJ = str1.charAt(3); System.out.println(unJ); 'j‘
La classe String : Modification des objets String Les String sont inaltérables en Java : on ne peut modifier individuellement les caractères d’une chaîne. – Par contre il est possible de modifier le contenu de la variable contenant la chaîne (la variable ne référence plus la même chaîne). – String chaine = "bonjour"; – chaine = chaine.substring(0,3) + "soir"; – System.out.println(chaine); "bonsoir"
La classe String : méthodes utiles • Quelques autres méthodes utiles – boolean startsWith(String chaine) : pour tester si une chaine de caractère commence par la chaine de caractère chaine – boolean endsWith(String chaine) : pour tester si une chaîne de caractère se termine par la chaine de caractère chaine String chaine = "bonjour "; boolean a = chaine.startsWith("bon"); //a vaut true boolean b = chaine.endsWith("jour"); //b vaut true
La classe String Plus d’informations dans les documentations de l’API dans le package java.lang
La classe Math • Les fonctions mathématiques les plus connues sont regroupées dans la classe Math qui appartient au package java.lang – les fonctions trigonométriques – les fonctions d’arrondi, de valeur absolue,... – la racine carrée, la puissance, l’exponentiel, le logarithme, etc. • Ce sont des méthodes de classe (static) double calcul = Math.sqrt (Math.pow(5,2) + Math.pow(7,2)); double sqrt(double x) : racine carrée de x double pow(double x, double y) : x puissance y
Les collections de type List • Une liste est une collection ordonnée. • L'utilisateur de celle-ci a un contrôle complet sur les éléments qu'il insère dedans, et il peut y accéder par l'entier de leur index. Les listes ont toujours comme premier élément 0.
Les listes chaînées : LinkedList Une liste chaînée est une liste dont chaque élément est relié au suivant par une référence à ce dernier.
ArrayList • Un ArrayList est un tableau qui se redimensionne automatiquement. •
La gestion des erreurs en java • Les exceptions représentent le mécanisme de gestion des erreurs intégré au langage Java, Il se compose d'objets représentant les erreurs et d'un ensemble de trois mots clés qui permettent de détecter et de traiter ces erreurs ( try, catch et finally ) et de les lever ou les propager (throw et throws).
La gestion des erreurs en java public class TestException { public static void main(java.lang.String[] args) { int i = 3; int j = 0; System.out.println("résultat = " + (i / j)); System.out.println(" Fin du programme !")); } • }
La gestion des erreurs en java C:>java TestException Exception in thread "main" java.lang.ArithmeticException: / by zero at tests.TestException.main(TestException.java:23)
La gestion des erreurs en java public class TestException { public static void main(java.lang.String[] args) { // Insert code to start the application here. int i = 3; int j = 0; try { System.out.println("résultat = " + (i / j)); } catch (ArithmeticException e) { } System.out.println(" Fin du programme !")); }
POO : Objets et classes Objectifs de la POO: • On manipule des objets. • Les programmes sont découpés suivant les types des objets manipulés. • Les données sont regroupées avec les traitements qui les utilisent. • Une classe Facture regroupe, par exemple, tout ce que l’on peut faire avec une facture, avec toutes les données nécessaires à ces traitements.
Qu’est-ce qu’un objet? • Toute entité identifiable, concrète ou abstraite, peut être considérée comme un objet. • Un objet réagit à certains messages qu'on lui envoie de l'extérieur ; la façon dont il réagit détermine le comportement de l'objet. • Il ne réagit pas toujours de la même façon à un même événement ; sa réaction dépend de l’état dans lequel il se trouve.
Notion d’objet en Java • Un objet a: – une adresse en mémoire (identifie l’objet) – un comportement (ou interface) – un état interne • L’état interne est donné par des valeurs de variables d’instances. • Le comportement est donné par des fonctions ou procédures, appelées méthodes.
Exemple d’objet
Interactions entre objets Les objets interagissent en s’envoyant des messages synchrones Les méthodes d’un objet correspondent aux messages qu’on peut lui envoyer : quand un objet reçoit un message, il exécute la méthode correspondante Exemples : objet1.decrisToi(); employe.setSalaire(20000); voiture.demarre(); voiture.vaAVitesse(50); Objet qui reçoit le message Message envoyé
Messages entre objets Pierre envoie un message à sa voiture maVoiture.vaVitesse(70)