Classes abstraites, interface Classe interne Classes enveloppes

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Formation universitaire à .NET: Introduction à C#
Le mécanisme des exceptions
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Au programme du jour …. Livraison de code Organisation des répertoires et packages Ce que vous navez pas encore vraiment vu Constantes et variables de.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Au programme du jour …. Livraison de code Organisation des répertoires et packages Ce que vous navez pas encore vraiment vu Constantes et variables de.
Approfondissement du langage
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
C.
Programmer en JAVA par Tama
JAV - TD 6 Structures de données JAVA
1 Le mécanisme des exceptions Qu'est-ce qu'une exception? Comment définir et signaler des exceptions? Comment récupérer des exceptions?
Introduction à la POO: Les classes vs les objets
Programmation par Objets et Java
Chapitre III Héritage (début)
Principes de programmation (suite)
Programmation orientée objet
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
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.
Langage Oriente Objet Cours 4.
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Java Héritage, interfaces.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Rappels sur la Programmation java
Structures de données IFT-2000
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction au paradigme orienté-objet (suite)
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
IFT 6800 Atelier en Technologies d’information
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Formation Développeur Java Programmation objet avec JAVA Partie 2
Cours 4 Héritage (suite).
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Héritage et composition
Objectifs À la fin de ce cours, vous serez capables de :
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
11/04/ L'héritage Cours 7 Cours 7.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Cours 7 Classes locales Clonage Divers: tableaux.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Réaliser par: Sadok Amel Cheboui hassiba
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
LES CLASSES ET LES OBJETS
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
Transcription de la présentation:

Classes abstraites, interface Classe interne Classes enveloppes 13 Conception par objets Classes abstraites, interface Classe interne Classes enveloppes Cours 13 Cours 13

Plan Classe abstraite Interface Classe interne Classes enveloppes Classe Double Cours 13 Cours 13

Classe abstraite Dans une classe abstraite certaines méthodes sont seulement déclarées : leur corps n’est pas précisé. Ces méthodes là doivent alors être déclarées abstract et leur définition doit être effectuée dans les classes dérivées. Toute classe contenant des méthodes abstraites doit, elle aussi, être déclarée abstract. Une classe abstraite ne peut être instanciée. Cours 13 Cours 13

Objectifs Constituer un « réservoir d’héritage » : méthodes et variables communes. Imposer à l’utilisateur de définir le corps des méthodes abstraites (donc imposer un mode d’emploi). Conséquence : Instancier une classe abstraite n’a pas de sens, d’où l’interdiction. Cours 13 Cours 13

On impose à l’utilisateur de redéfinir afficher() import java.awt.Color; Exemple abstract class Figures { int x, y; // Coin supérieur gauche du rectangle circonscrit int width, height; // Largeur, hauteur du rectangle circonscrit boolean visible; Color couleurTracé; Color couleurFond; static int nbDeFigures = 0; Figures(int x, int y, int largeur, int hauteur) { this.x = x; this.y = y; this.width = largeur; this.height = hauteur; couleurTracé = Color.black; couleurFond = Color.pink; visible = false; nbDeFigures++; } abstract void afficher(); } On impose à l’utilisateur de redéfinir afficher() Cours 13 Cours 13

Interface Sorte de classe qui ne contient que des méthodes abstraites et des variables static et final. Se déclare comme une classe en remplaçant le mot class par interface. Peut être incorporée dans une classe grâce au mot clé implements. La classe doit alors définir toutes les méthodes déclarées dans l'interface sinon, la classe est considérée comme abstraite. Toutes les méthodes redéfinies doivent être déclarées public explicitement car les méthodes d'une interface sont toujours publiques. final = constante Cours 13 Cours 13

Une classe peut implémenter plusieurs interfaces. Une interface peut être étendue grâce à extends, on crée une nouvelle interface. On peut dire qu'une classe qui implémente une interface se comporte comme l'interface. Imposer l’implémentation d’une interface dans une classe, c’est définir « le mode d’emploi » de la classe. C'est contraindre son utilisateur à obéir à un certain protocole.  Cours 13 Cours 13

class A implements Inter { int x ; A() {} A(int x) {this.x = x; } interface Inter { static final double PI = 3.14; void lire(); void afficher(); } //------------------------------------------------------------------------ class A implements Inter { int x ; A() {} A(int x) {this.x = x; } public void lire() { } // public obligatoire public void afficher( ) {System.out.println("Bonjour, x vaut "+x);} } Cours 13 Cours 13

Classe interne Une classe interne est définie à l'intérieur d'une autre classe. Un objet d'une classe interne peut accéder à l'implémentation de l'objet qui l'a créé y compris aux données privées. Les classes internes peuvent être cachées aux autres classes du même package. Les classes internes anonymes sont utiles pour définir des appels de méthodes pour la gestion d’événements à la volée. Les classes internes sont traduites par le compilateur en fichiers portant le nom de la classe mère suivi d'un $ et du nom de la classe interne. Exemple : MaFen$Ecouteur.class. Cours 13 Cours 13

Classes enveloppes Une variable d’un type primitif int, … n’est pas un objet. Les classes enveloppes sont destinées à encapsuler ces variables là dans des objets. C’est pourquoi, c’est là que l’on trouve les méthodes de conversion. Classes Byte, Short, Integer, Long, Float, Double, Boolean, Void, BigInteger, BigDecimal. Cours 13 Cours 13

La classe Double Double(double valeur) Double(String s) Constructeurs Construit un objet de classe Double. Attention au grand « D » Cours 13 Cours 13

Comparaisons boolean isInfinite() static boolean isInfinite(double d) int compareTo(Double unAutreDouble) Renvoie : 0 si égal, négatif si int < unAutreDouble, positif sinon boolean isInfinite() static boolean isInfinite(double d) boolean isNaN() static boolean isNaN(double d) NaN = not a Number Cours 13 Cours 13

Cast de de la valeur d’un objet de classe Double en … Conversions : cast Cast de de la valeur d’un objet de classe Double en … byte byteValue() double doubleValue() float floatValue() int intValue() long longValue() short shortValue() static longBitsToDouble(long bits) (binaire) Cours 13 Cours 13

Conversion en String, Double ou double String toString() static String toString(double d) Conversion en chaîne d’un objet Conversion en chaîne d’un nb static Double valueOf(String s) throws NumberFormatException Génère un objet Double ayant la valeur de la chaîne Diffuse éventuellement une exception vers le bloc appelant static double parseDouble(String s) parse = analyse Génère un nombre double Cours 13 Cours 13

Champs static final double Constantes Champs static final double MAX_VALUE MIN_VALUE NEGATIVE_INFINITY POSITIVE_INFINITY NaN (Not a Number) Exemple : Double. MAX_VALUE Cours 13 Cours 13

Exemple : conversion d’une chaîne en type primitif double double z1, z2; // Ici on ne gère pas l'exception, elle est éventuellement diffusée z1 = Double.parseDouble("12345"); // Là, on récupère l'exception try { z2 = Double.parseDouble("12A345"); } catch(NumberFormatException e) { System.out.println("La chaîne n'est pas un double"); Cours 13 Cours 13

Exemple : conversion d’une chaîne en objet Double Double d1, d2; // Ici on ne gère pas l'exception, elle est éventuellement diffusée d1 = Double.valueOf("123.45"); // Là, on récupère l'exception try { d2 = Double.valueOf("12A345"); } catch(NumberFormatException e) { System.out.println("La chaîne n'est pas un double"); Cours 13 Cours 13