La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.

Présentations similaires


Présentation au sujet: "Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java."— Transcription de la présentation:

1 Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java

2 2 Master 1 SIGLIS Objectifs du chapitre Définir des attributs sur une classe Java ; Instancier une classe en Java pour obtenir un objet; Appeler une méthode définie sur un objet ; Définir une partie publique et une partie privée dans une classe ; Règles de bon goût pour la conception d’une classe; Ce qu'on peut faire avec une String; Utiliser avec précaution les références Définir attributs et les méthodes statiques. Utiliser les packages

3 Java Lecteur - Chapitre 3 Classes et objets en Java 3 Master 1 SIGLIS Définir des attributs sur une classe Class Personne { public String nom ; public String prenom ; public int age ; public String adresse ; public boolean isMineur() { return age < 18 ; } public signifie que l'attribut fait partie de la partie publique de l'objet 4 attributs sont définis : nom, prenom, age, adresse. 1 méthode est définie : isMineur il n'y a pas de méthode main : cette classe n'est pas exécutable public String nom public String prenom public int age public String adresse Personne public boolean isMineur() Exemple: la classe Personne

4 Java Lecteur - Chapitre 3 Classes et objets en Java 4 Master 1 SIGLIS Créer et utiliser un objet Pour créer une classe, il faut utiliser l'instruction new Pour accéder aux attributs de l'objet, il faut préfixer le nom de l'attribut par le nom de l'objet Pour appeler des méthodes sur l’objet il faut préfixer l’appel de la méthode par le nom de l’objet. class UtilisationPersonne { public static void main(String[] args) { Personne jeanPierre = new Personne(); jeanPierre.prenom = “Jean Pierre” ; jeanPierre.nom = “Dupont” ; jeanPierre.age = 15 ; jeanPierre.adresse = “17 rue des Lilas 64100 Bayonne“ ; boolean mineur = jeanPierre.isMineur() ; } Exemple : classe Personne

5 Java Lecteur - Chapitre 3 Classes et objets en Java 5 Master 1 SIGLIS Parties publique et privée: règles de bon goût  Toutes les données doivent être privées ;  Pour chaque attribut att de type T, on définit deux méthodes publiques Un accesseur en lecture : Un accesseur en écriture :  Ces permettent d'implémenter de manière centralisée les régles de gestion sur les attributs calculés (date de naissance -> âge),.... public T getAtt() { return att } public T getAtt() { return att } public void setAtt( T valeur) { att = valeur } public void setAtt( T valeur) { att = valeur }

6 Java Lecteur - Chapitre 3 Classes et objets en Java 6 Master 1 SIGLIS Parties publique et privée : exemple Class Personne { private String nom ; private String prenom ; private int age ; private String adresse ; public boolean isMineur() { return age < 18 ; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAdresse() { return adresse; } public void setAdresse(String adresse) { this.adresse = adresse; } class UtilisationPersonne { public static void main(String[] args) { Personne jeanPierre = new Personne(); jeanPierre.setPrenom(“Jean Pierre”) ; jeanPierre.setNom(“Dupont”) ; jeanPierre.setAge(15) ; jeanPierre.setAdresse(“17 rue des Lilas 64100 Bayonne“) ; boolean mineur = jeanPierre.isMineur() ; } La classe Personne Utilisation de la classe Personne Pour chaque attribut att, on a une méthode getAtt et setAtt définies comme public. this est une variable implicitement définie égale à l’objet lui-même. utiliser this permet de distinguer le paramétre de l'attribut de l'objet

7 Java Lecteur - Chapitre 3 Classes et objets en Java 7 Master 1 SIGLIS La classe String La classe String permet de gérer les chaîne de caractères MéthodeUtilisation char charAt(int index) Renvoie le caractère situé à la position index. boolean endsWith(String suffix) Renvoie vrai si et seulement si la chaîne contient la chaîne spécifiée. boolean equals(Object anObject) Renvoie vrai si et seulement si la chaîne est égale à l’objet spécifiée. int indexOf(String str) Renvoie la position à partir de laquelle on peut trouver la chaîne spécifiée. int lastIndexOf(String str) Renvoie la position la plus à droite à partir de laquelle on peut trouver la chaîne spécifiée. int length() Renvoie la taille de la chaîne. String replaceAll(String regex, String replacement) Remplace toutes les occurrences de regex par la chaîne replacement. boolean startsWith(String prefix) Revoie vrai si et seulement si la chaîne commence par la chaine spécifiée. String toUpperCase() Remplace les minuscules par des majuscules. String trim() Enlève les espaces au début et à la fin de la chaîne. static String valueOf(boolean b) static String valueOf(char c) static String valueOf(char[] data) static String valueOf(double d) static String valueOf(float f) static String valueOf(int i) static String valueOf(long l) Convertit la donnée spécifiée en chaîne de caractères. L'interface de la classe String (extrait) toutes ces méthodes créent une nouvelle chaîne de caractères

8 Java Lecteur - Chapitre 3 Classes et objets en Java 8 Master 1 SIGLIS Références Quand on manipule s, on pense manipuler un objet. En fait s se comporte comme un référence vers le vrai objet: Quand accéde à une méthode, s se charge de transferer la demande à l'objet réel. String s = "HELLO WORLD"; ELOLHLWORD String s1 ; On a crée un référence (s1) mais on n'a pas créé d'objet s s1 Si on tente d'accéder à une méthode de s1, on aura une erreur "NullPointerException" Une référence peut soit référencer un objet, soit ne pas référencer d'objet.

9 Java Lecteur - Chapitre 3 Classes et objets en Java 9 Master 1 SIGLIS Références nulles Il est possible de tester si une référence est nulle: on compare l'objet à la valeur null. null est un mot clé du langage qui se comporte comme une constante. // lecture à la console String numeroSS = System.console().readLine(" N°= Sécurité de sociale? "); Personne p = PersonneMetier.rechercher( numeroSS) ; if (p != null) { // traitement … } else { // Personne non trouvée … } Exemple: recherche d'une personne par son numéro de sécurité sociale

10 Java Lecteur - Chapitre 3 Classes et objets en Java 10 Master 1 SIGLIS Classes enveloppeur (wrappers) Le fait qu'une référence puisse prendre la valeur null permet de représenter que: un attribut a une valeur ou n'a pas de valeur du tout; une méthode renvoie une valeur dans le cas sans erreur ou pas de valeur du tout en cas d'echec. Question: Comment puis je faire dans le cas ou la valeur est un entier, un réél, un booléen ? Réponse: J'utilise une des classes enveloppeurs. A chaque type primitif correspond une classe enveloppeur Une classe enveloppeur contient un seul attribut "value" du type du type primitif associé Les classes enveloppeurs font partie des bibliothèques fournies avec Java. Type Primitif Classe enveloppeur int Integer long Long float Float double Double boolean Boolean char Character Correspondance type primitif / classe enveloppeur

11 Java Lecteur - Chapitre 3 Classes et objets en Java 11 Master 1 SIGLIS Constructeurs (1) Les constructeurs d'une classe permettent de réaliser les opérations d'initialisation de l'objet Le constructeur est automatiquement appelé au moment de la création Un constructeur se reconnait aux caractéristiques suivantes: il porte le nom de la classe; il ne renvoie pas de résultat (même pas de void). class Personne { private String nom ; private String prenom ; private int age ; private String adresse ; public Personne() { nom = "" ; prenom = "" ; age = 0 ; adresse = "" ; } private boolean isMineur() { return age < 18 ; } Constructeur

12 Java Lecteur - Chapitre 3 Classes et objets en Java 12 Master 1 SIGLIS Constructeurs (2) On nomme constructeur par défaut: le constructeur sans argument Ce constructeur est soit défini par le concepteur de la classe soit défini "par défaut" par Java  Il y a toujours un constructeur sur une classe On peut définir des constructeurs qui admettent des arguments. En définissant le constructeur par défaut comme privé et en définissant ses propres constructeurs on peut forcer le protocole d'initialisation des objets. class Personne { private String nom ; private String prenom ; private int age ; private String adresse ; /* cosntructeur par défaut. */ private Personne() {} /* constructeur avec argument */ public Personne(String nom, String prenom, int age, String adresse) { this.nom = nom; this.prenom = prenom; this.age = age; this.adresse = adresse; } private boolean isMineur() { return age < 18 ; } le constructeur par défaut est défini comme privé un constructeur spécifique est défini Personne jeanDurand = new Personne("Jean", "Durand", 23, "10 allée des Saules 64100 Bayonne") ; Utilisation

13 Java Lecteur - Chapitre 3 Classes et objets en Java 13 Master 1 SIGLIS attributs et méthodes statiques Un attribut statique est commun à toutes les instances de la classe. Si une instance le modifie, toutes les autres vont voir la nouvelle valeur. Une méthode statique n'a pas besoin d'avoir une instance particulière pour être appelée Une méthode statique ne peut pas accéder aux méthodes ou aux attributs non statiques de la classe. On utilise le mot clé static pour définir des méthodes ou des attributs statiques // attribut statique static public int nbPersonne = 0 ; // méthode statique public static int getNb() { return nbPersonne; }

14 Java Lecteur - Chapitre 3 Classes et objets en Java 14 Master 1 SIGLIS Attributs et méthodes statiques : Exemple (1) Un texte ici class Personne { private String nom ; private String prenom ; private int age ; private String adresse ; // attribut statique static public int nbPersonne = 0 ; /* constructeur par défaut. */ private Personne() {} /* constructeur avec argument */ public Personne(String nom, String prenom, int age, String adresse) { this.nom = nom; this.prenom = prenom; this.age = age; this.adresse = adresse; // on crée un objet : on incrémente le nombre de personnes nbPersonne = nbPersonne + 1; } private boolean isMineur() { return age < 18 ; } public static int getNb() { return nbPersonne; } l'attribut nbPersonne est statique la méthode getNb est statique la méthode getNb est appelée chaque fois qu'un objet est créé

15 Java Lecteur - Chapitre 3 Classes et objets en Java 15 Master 1 SIGLIS Attributs et méthodes statiques : Exemple (2) class ComptePersonne { public static void main(String[] args) { Personne jeanDurand = new Personne("Jean", "Durand", 23, "10 allée des Saules 64100 Bayonne") ; Personne geraldineDupont = new Personne("Geraldine", "Dupont", 18, "15 allée des Bambous 64100 Bayonne") ; Personne etienneLefebre = new Personne("Etienne", "Lefebre", 45, "110 rue des Cyclamens 64100 Bayonne") ; System.out.println("Il y a " + Personne.getNb() + " personnes créées" ) ; } $ java ComptePersonne Il y a 3 personnes créées Résultat de l'exécution Utilisation de la classe Personne

16 Java Lecteur - Chapitre 3 Classes et objets en Java 16 Master 1 SIGLIS Packages  Les packages permettent de structurer les applications Java en blocs contenant les classes qui sont fonctionnellement reliées. le package "data" contient les classes "données" : Personne, Article, Commande, Facture le package "metier" contient les classes qui permettent de lancer des traitements : lancement du calcul du besoin net, calcul des charges globales le package "accès" va contenir les classes qui vont permettre de faire des accès en base de données: création d'un commande, rechercher les commandes à livrer pour le xx/xx/xx, rechercher les produit qui composent le produit 345,... Exemples  on peut imbriquer les packages : on a une structure arborescente  Les packages permettent d'éviter les collisions de noms: j'utilise deux librairies L1 et L2 qui contiennent toutes les deux X.java la classe X de L1 sera référencé l1.X la classe X de L2 sera référencée l2.X Il n'y a plus d'ambiguïté

17 Java Lecteur - Chapitre 3 Classes et objets en Java 17 Master 1 SIGLIS Packages (2)  Pour rattacher la classe X au package l1 il faut : créer dans le dossier du projet, un dossier l1 et y mettre X.java dans X.java ajouter la déclaration en début de fichier déclarer X comme visible depuis l'extérieur du package en modifiant la déclaration de la classe package l1 ; public class X {... }  Dans la classe appelante :  Déclarer l'utilisation de l1.x et l2.X  On utilise la classe X de l1 en faisant : new l1.X() ; import l1.X ; import l2.X ; public class X {... } la section des imports se met toujours avant le début de la classe

18 Java Lecteur - Chapitre 3 Classes et objets en Java 18 Master 1 SIGLIS Packages (3): exemple Classe l1.X Classe l2.X package l1 ; public class X { public X() { System.out.println("Instanciation de l1.X") ; } public String quiEstTu() { return "Je suis l1.X" ; } package l2 ; public class X { public X() { System.out.println("Instanciation de L2.X") ; } public String quiEstTu() { return "Je suis l2.X" ; } import l1.X ; import l2.X ; class Package { public static void main(String[] args) { l1.X l1X = new l1.X() ; l2.X l2X = new l2.X() ; System.out.println(l1X.quiEstTu() ) ; System.out.println(l2X.quiEstTu() ) ; } Utilisation java Package Instanciation de l1.X Instanciation de L2.X Je suis l1.X Je suis l2.X Résultat de l'exécution

19 Java Lecteur - Chapitre 3 Classes et objets en Java 19 Master 1 SIGLIS Les tableaux Les tableaux sont des listes de données (type primitifs ou objets) leur taille est fixée à la création Initialisation : de deux façons int[] a1 = { 1, 2, 3, 4, 5 }; int[] a2 = new int[5]; en fixant les valeurs qu'il contient : ici a1 contient 5 valeurs 1,2,3,4,5 en utilisant l'opérateur new et précisant la taille

20 Java Lecteur - Chapitre 4 Structures de contrôles 20 Master 1 SIGLIS Tableau Utilisation : avec l'opérateur [] int[] a2 = new int[5]; a2[0] = 1 ; a2[1] = 2 ; a2[2] = 3 ; a2[3] = 4 ; a2[4] = 5 ; System.out.println("a2[0] = " + a2[0]); System.out.println("a2[1] = " + a2[1]); System.out.println("a2[2] = " + a2[2]); System.out.println("a2[3] = " + a2[3]); System.out.println("a2[4] = " + a2[4]);

21 Java Lecteur - Chapitre 4 Structures de contrôles 21 Master 1 SIGLIS Un texte ici


Télécharger ppt "Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java."

Présentations similaires


Annonces Google