Remarques : Les liens externes de cette page représente des compléments (bibliographie de lien sur l'internet) au cours au Liban et non pas le cours en lui même. - Programmation
impérative et méthodes statiques en Java. (Rappel rapide et quelques
exemples simples.) La classe Scanner pour lire du Std-input.
- Classes et Objets
(avec notation UML)
- références,
- création d’objets
(constructeur par défaut),
- gestion de la mémoire
(garbage collector),
- accès aux attributs,
- Envoi de messages
(appel de méthode),
- this (l’objet
courant),
- Principe d’encapsulation
(private, public) et les 2 avantages :
- Contrôle sur l’assignation
de valeurs aux attributs,
- Cacher l’implémentation.
- Constructeurs avec
paramètres, plusieurs constructeurs (surcharge), appel aux constructeurs
this(…),
- Surcharge des méthodes,
- Variables de classe
(statique),
- Méthodes de classes,
- Méthodes privées :
intérêt,
- Constantes (final,
final static),
- La méthode
main et le paramètre String[] arg,
- Initialiseur statique
- La méthode
finalize().
- Design Pattern :
Singleton.
- Tableaux
(1 et 2 dimensions, tableau est un objet, length
un attribut public et final, tableau d’objets ou plutôt tableau de
références, tableau initialisé à la déclaration, la classe Arrays
et les méthodes sort et binarySearch avec un tableau
d’entiers, notion de package et le modifieur blank).
- Délégation
(Composition vs Agrégation, relation « a un », notation UML).
- Héritage et
Polymorphisme
- Réutilisation des
classes et le concept de spécialisation.
- Constructeurs non
hérités et chaînage des constructeurs.
- Redéfinition des
méthodes et réutilisation
- Visibilité des
variables et méthodes (le modifieur protected).
- Classes et méthodes
finales.
- Sur-classement des
objets, lien dynamique, vérification statique, et Polymorphisme.
- Transtypage et vérification
de type (instanceof)
- La méthode equals
et toString() de la classe Object.
- Classes Abstraites
et le concept de généralisation.
- Les interfaces
en Java (comme déclaration des services offerts).
- Design Pattern :
Pont, Stratégie
- Les collections
- L’interface Collection
et ses méthodes, l’interface List à la classe ArrayList (Exemple d’utilisation
sans typage, puis généricité)
- Design Pattern :
Itérateur.
- La méthode hashCode
de la classe Object , l’interface Set à la classe HashSet et itérateur obligatoire.
- L’interface Comparable
et notion d’ordre sur les objets d’une classe. La méthode sort
avec un tableau d’objets comparables. La classe TreeSet.
- L’interface Map à
la classe HashMap et TreeMap.
- Implémentation
d’une classe ListeChainee générique(avec des méthodes d’ajout,
et une méthode iterator() qui renvoie un itérateur sur la liste.
Cette dernière doit retourner un objet d’une classe interne
implémentant l’interface Iterator).
- Les classes « enveloppes »
(Integer, Double, …), quelques méthodes utiles (Integer.parseInt(…),
…) et l’autoboxing.
- Les types énumérés.
- Apprendre aux étudiants
d’utiliser la documentation Java et le tutorial.
- Les Exceptions
et Assertions
- Exception est un
signal (exemple de division par 0 et/ou NullPointerException, …)
- Les classes Throwable,
Error, Exception, RuntimeException, méthodes et constructeurs (printStackTrace(),
getMessage()).
- Traitement des exceptions
(try, catch)
- Création des exceptions
(throws, throw), propagation des exceptions.
- Ordre des clauses
catch est important.
- Les assertions :
instruction assert et intérêt.
- Activation des assertions
et utilisation (Documenter les suppositions, tester les préconditions
d’une méthode privée, tester les invariants)
- Programmation
évènementielle (Swing) vers un document swing.pdf
- Les composants graphiques
simples et les conteneurs(JFrame, JPanel, JButton, JLabel). Exemple
simple.
- Les gestionnaires
de Layout :FlowLayout, BorderLayout, GridLayout.
- Les JMenuBar, JMenu,
JMenuItem, JTextField, JComboBox, …
- Evénements, objet
source d’événements, objet écouteur. La classe ActionEvent, L’interface
ActionListener, et les classes anonymes. (Exemple sur un bouton).
- MouseEvent, MouseListener,
MouseMotionListener, les adapteurs.
- Overview sur JScrollPane,
JTextArea, JColorChooser, JDesktopPane, JInternalFrame, JRadioButton,
Programmation Graphique par Drag & Drop (Netbeans ou autre framework).
- Design Pattern :
Observateur/Observé, (Utilisation des Api Java facilitant l’implémentation
de ce pattern.)
- Utilisation de la
classe JOptionPane.
- ? Dessin 2D en Java
et la méthode paintComponant de JPanel.
- Programmation
des entrées/sorties
- Les streams d’octets
(Exemple sur DataInput/OutputStream).
- Les streams de caractères :
Reader/Writer (FileReader/Writer, BufferedReader, PrintWriter).
- La classe File et
ses méthodes utiles
- Design Pattern :
Décorateur.
- Introspection
et réflexivité
- La classe Class.
Déterminer l’objet Class à partir du nom de la classe ou d’une
instance. Déterminer les attributs et les méthodes privés ou non
et leurs modifieurs. Déterminer les paramètres d’une méthode.
- Exécution d’une
méthode et/ou d’un constructeur.
- Les patrons
de conception
- Patrons créateurs :
Fabrique abstraite, Monteur, Méthode de Fabrique,
Prototype.
- Patrons structurels :
Adapteur, Composite, Facade.
- Patrons comportementaux :
Chaîne de responsabilité, commande, interpréteur, Médiateur,
État, Patron de méthode.
- Programmation
concurrente.
- La classe Thread
et l’interface Runnable (définir un thread, lancement, attente, arrêt).
- Synchronisation
des threads et section critique,
- Coordination des
threads et Moniteur.
- Collection et accès
concurrente (java.util.concurrent)
- XML et Java
- Introduction à
XML
- DTD et validation
- Parseur XML (API
SAX et JDOM)
- Expressions
Régulières
- La classe String
et ses méthodes,
- Les classes StringTokenizer
et StreamTokenizer
- Les classes du package
java.util.regex.
- ? JDBC
|