La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s contient la chaîne "aaa" mais String s=new String("aaa"); // identique à la ligne précédente La concaténation l’opérateur + entre 2 String les concatène : String str1 = "Bonjour ! "; String str2 = null; str2 = "Comment vas-tu ?"; String str3 = str1 + str2; / * Concaténation de chaînes : str3 contient " Bonjour ! Comment vas-tu ?"
Différences entre objets et types de base Mémoire 3 int x=3,y=3; x == y est vrai 3 0x768 Abc .... 0x852 Abc .... String s1="abc",s2="abc"; s1 == s2 est faux... 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
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 classe String Longueur d’un objet String : méthode int length() : renvoie la longueur de la chaîne String str1 = "bonjour"; int n = str1.length(); // n vaut 7 Sous-chaînes méthode String substring(int debut, int fin) extraction de la sous-chaine depuis la position debut jusqu’à la position fin non-comprise. String str2 = str1.substring(0,3); // str2 contient la valeur "bon" le premier caractère d’une chaîne occupe la position 0 le deuxième paramètre de substring indique la position du premier caractère que l ’on ne souhaite pas copier
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); // unJ contient le caractère 'j' 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). str1 = str1.substring(0,3) + " soir"; /* str1 contient maintenant la chaîne "bonsoir" */
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). str1 = str1.substring(0,3) + " soir"; /* str1 contient maintenant la chaîne "bonsoir" */ Quand on a besoin de manipuler directement les chaînes de caractères il existe la classe StringBuffer.
La classe String Les chaînes de caractères sont des objets : pour tester si 2 chaînes sont égales il faut utiliser la méthode boolean equals(String str) et non == pour tester si 2 chaînes sont égales à la casse près il faut utiliser la méthode boolean equalsIgnoreCase(String str) String str1 = "BonJour"; String str2 = "bonjour"; String str3 = "bonjour"; boolean a, b, c, d; a = str1.equals("BonJour"); //a contient la valeur true b = (str2 == str3); //b contient la valeur false c = str1.equalsIgnoreCase(str2);//c contient la valeur true d = "bonjour".equals(str2); //d contient la valeur true
La classe String Quelques autres méthodes utiles boolean startsWith(String str) : pour tester si une chaine de caractère commence par la chaine de caractère str boolean endsWith(String str) : pour tester si une chaîne de caractère se termine par la chaine de caractère str String str1 = "bonjour "; boolean a = str1.startsWith("bon");//a vaut true boolean b = str1.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 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 { //Déclaration de la méthode somme public int somme (int param1, int param2) { int resultat = 0; resultat = param1 + param2; return resultat; } public static void main(String args[]) { // Utilisation de la méthode somme int monResultat = somme(3,5); System.out.println(monResultat);
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 { //Déclaration de la méthode somme 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[]) { // Utilisation de la méthode somme 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 { //Déclaration de la méthode somme public void afficher () { //variable locale int variable = 2; System.out.println(variable); } public static void main(String args[]) { // variable globale int variable = 5; afficher();
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)); } }
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) { catch (Exception e) { } }