java et la poo avancée - · pdf fileplan les exceptions les flux d'entrée...
Post on 18-Feb-2018
227 Views
Preview:
TRANSCRIPT
Java et la POOavancée
S. Rital
Plan● Les exceptions
● Les flux d'entrée / sortie
● Les énumérations
● Les collections
● La généricité
● Java et la réflexivité
Les exceptions
● Une exception est une erreur se produisant dans un programme qui conduit le plus souvent à l'arrêt de celui-ci.
Les exceptions
Le bloc try { … } catch { … }
Les exceptions
Le bloc try { … } catch { … }
Les exceptions
Les exceptions
Les exceptions
Les exceptions
Ensemble, nous allons intégrer plusieurs exceptions !!!!!
public Ville(String pNom, int pNbre, String pPays) throws NombreHabitantException, NomVilleException
Exceptions. Résumé
●Lorsqu'un événement que la JVM ne sait pas gérer apparaît, une exception est levée (exemple : division par zéro). Une exception correspond donc à une erreur.
●La superclasse qui gère les exceptions s'appelle Exception.
●Vous pouvez créer une classe d'exception personnalisée : faites-lui hériter de la classe Exception.
●L'instruction qui permet de capturer des exceptions est le bloc try{…}catch{}.
●Si une exception est levée dans le bloc try, les instructions figurant dans le bloc catch seront exécutées pour autant que celui-ci capture la bonne exception levée.
●Vous pouvez ajouter autant de blocs catch que vous le voulez à la suite d'un bloc try, mais respectez l'ordre : du plus pertinent au moins pertinent.
●Dans une classe objet, vous pouvez prévenir la JVM qu'une méthode est dite « à risque » grâce au mot clé throws.
●Vous pouvez définir plusieurs risques d'exceptions sur une même méthode. Il suffit de séparer les déclarations par une virgule.
●Dans cette méthode, vous pouvez définir les conditions d'instanciation d'une exception et lancer cette dernière grâce au mot clé throw suivi de l'instanciation.
●Une instanciation lancée par le biais de l'instruction throw doit être déclarée avec throws au préalable !
Les flux d'entrée / sortie
● Exercice.– Lire / écrire dans un fichier
– Utiliser la classe java.io.File
– Lire la javadoc pour implémenter le TP.
Les énumérations
Les énumérations
Les énumérations
Les énumérations
Les énumérations. Résumé
● Une énumération est une classe contenant une liste de sous-objets.
● Une énumération se construit grâce au mot clé enum.
● Les enum héritent de la classe java.lang.Enum.
● Chaque élément d'une énumération est un objet à part entière.
● Vous pouvez compléter les comportements des objets d'une énumération en ajoutant des méthodes.
Les collections
● Une collection permet de stocker un nombre variable d'objets (équivalent à STL en C++).
Les collections
● Les objets List– Vector
– LinkedList
– ArrayList
● Les objets Map– Hashtable
– HashMap
● Les objets Set– HashSet
● ...
Les collections. Résumé
● Une collection permet de stocker un nombre variable d'objets.
● Il y a principalement trois types de collection : les List, les Set et les Map.
● Chaque type a ses avantages et ses inconvénients.
● Les Collection stockent des objets alors que les Map stockent un couple clé - valeur.
● Si vous insérez fréquemment des données en milieu de liste, utilisez une LinkedList.
● Si vous voulez rechercher ou accéder à une valeur via une clé de recherche, optez pour une collection de type Map.
● Si vous avez une grande quantité de données à traiter, tournez-vous vers une liste de type Set.
La généricité
Faite une classe qui traite tous type objet. A vous !
La généricité
WAW Super !
La généricité
Généricité
public class Duo<S,T>{
}
List<Float> listFloat = new ArrayList<Float>()
List<String> listStr = new ArrayList<String>
List<?>
List< ? extends Animal>
List< ? super Ville>
Généricité. Résumé
● La généricité est un concept très utile pour développer des objets travaillant avec plusieurs types de données.
● Vous passerez donc moins de temps à développer des classes traitant de façon identique des données différentes.
● La généricité permet de réutiliser sans risque le polymorphisme avec les collections.
● Cela confère plus de robustesse à votre code.● Vous pouvez coupler les collections avec la généricité !● Le wildcard (?) permet d'indiquer que n'importe quel type peut être traité et donc
accepté !● Dès que le wildcard (?) est utilisé, cela revient à rendre ladite collection en lecture
seule !● Vous pouvez élargir le champ d'acceptation d'une collection générique grâce au
mot-clé extends.● L'instruction ? extends MaClasse autorise toutes les collections de classes ayant
pour supertype MaClasse.● L'instruction ? super MaClasse autorise toutes les collections de classes ayant
pour type MaClasse et tous ses supertypes !● Pour ce genre de cas, les méthodes génériques sont particulièrement adaptées et
permettent d'utiliser le polymorphisme dans toute sa splendeur !
Java et la réflexivité
● La réflexivité (introspection) consiste à découvrir de façon dynamique des informations relatives à une classe ou à un objet.
Java et la réflexivité
● Objet Class
Java et la réflexivité
Connaître la superclasse d'une
classe.
Java et la réflexivité
Connaître la liste des interfaces d'une
classes.
Java et la réflexivité
● Connaître la liste des méthodes de la classe.
Java et la réflexivité
● Connaître la liste des champs (variable de la classe ou d'instance)
Java et la réflexivité
● Connaître la liste des constructeurs
Java et la réflexivité
● Instanciation dynamique
Java et la réflexivité
● Instanciation dynamique
Java et la réflexivité
● Instanciation dynamique
Java et la réflexivité. Résumé
● Lorsque votre JVM interprète votre programme, elle crée automatiquement un objet Class pour chaque classe chargée.
● Avec un tel objet, vous pouvez connaître absolument tout sur votre classe.
● L'objet Class utilise des sous-objets tels que Method, Field et Constructor qui permettent de travailler avec vos différents objets ainsi qu'avec ceux présents dans Java.
● Grâce à cet objet, vous pouvez créer des instances de vos classes Java sans utiliser new.
top related