Le langage de programmation Java

Copyright NetLine 2001

Présentation de Java

Java est le langage de programmation le plus intimement lié au développement d’applications pour Internet. Son principal avantage est la portabilité qui lui permet de générer des applications tournant sur n’importe quelle plate-forme disposant d’un interpréteur Java. Sa syntaxe est très proche d’un langage C++ allégé de sa complexité formelle. Java est un langage plus purement orienté objet que le C++ qui conserve de nombreux aspects de programmation procédurale puisqu'il n'est lui-même qu'une extension du langage C. Java est un langage interprété, développé chez Sun et qui acquiert ses lettres de noblesse depuis l’apparition d’outils de développement performants comme Visual J++, Visual Cafe, Latte, Jamba etc ...

Objectifs et Prérequis

Ce cours s’adresse à un public de programmeurs ou de gestionnaires de sites WWW désireux de créer des applications dynamiques sur Internet. Une bonne connaissance des fondements d’Internet est souhaitée ( TCP/IP, HTML, gestion d’un serveur Web ) ainsi que des rudiments de programmation dans un langage procédural ( Visual Basic, C C++) ou orienté objet.
Au terme de la formation, les apprenants disposeront d’une bonne compréhension de l’architecture du langage, d’une maîtrise de la syntaxe formelle du langage. A travers de nombreux exercices, les participants pourront suivre un cycle réel de développement édition - compilation - debugging à travers l’environnement de développement Microsoft Developer Studio. Les exercices seront réalisés au moyen de stations Windows 95 ou Windows NT disposant du compilateur Microsoft Visual J++ et de l’Internet Explorer 3.0.
Nota bene Ce cours consacré au langage Java n’envisage aucunement la programmation de petits scripts sur le navigateur Web client au moyen du langage de scripting Javascript. Java et Javascript sont des concepts foncièrement différents.

Durée

5 demi journées

Plan du cours

Module 1
Historique
Architecture d’un langage objet
Architecture de Java
Concept de classe, d’objet, d’applet
Phase d’interprétation et de compilation
Architecture d’une Java Virtual Machine
Intégration dans une page Web
Applications sand alone

Modules 2 - 3 - 4
Manipulation du Visual J++ et d’autres environnements de développement
Création de classe en langage Java
Eléments d’un objet Java : variables et méthodes
Principes de programmation Java :
· Types de variables
· Les expressions
· Contrôle de flux
· Les opérateurs

Exercices

Module 5
Programmation avancée
Exploitation des classes Java existantes : io, awt etc
Applications graphiques
Gestion de thread, d’exception, de template.
Programmation réseau , sécurité,
DCOM, ActiveX

Développer en Java 

Formation de 5 jours

Introduction

Le langage Java est un langage orienté objet qui intègre des fonctions puissantes (parallélisme, chargement dynamique de classes à travers le réseau,...). Ce stage s’adresse à tous ceux qui ont déjà une bonne expérience de la programmation et qui souhaitent acquérir la maîtrise complète du langage Java et des librairies réseau et graphiques (permettant la programmation d’applications multithreadées réparties et graphiques ainsi que l’écriture d’applets). Il aborde les problèmes de sécurité qui lui sont associés.

A l’issue de ce cours, les participants sauront développer une vaste gamme d’applications complexes s’exécutant dans un environnement Internet : par exemple des applications réparties graphiques, des applications multithreadées, des applets Java... 

Les conditions de participation

ll est absolument nécessaire que les participants aient déjà une bonne expérience de la programmation en langage C. La connaissance des bases de la programmation orientée objet n’est pas nécessaire bien que souhaitable. 

Description du cours

Introduction 

·         Les principes généraux de la programmation par objets et le langage Java.

·         Eléments de méthodologies orientées “objets”.

·         Introduction à la méthode OMT (modèle statique, dynamique, modèle fonctionnel). 

Présentation détaillée du langage 

·         La syntaxe et la sémantique de base : les variables, les méthodes, les entités lexicales, les opérateurs, les instructions de contrôle, les tableaux.

·         Les classes et objets : définition, instanciation, utilisation, les constructeurs, les champs et méthodes statiques, les tableaux de références d’objets, l’autoréférence.

·         L’extension, les classes abstraites, les interfaces et l’implémentation, le polymorphisme.

·         Les exceptions : aspects syntaxiques, les classes d’exception.

·         Unités de compilation et packages. 

Quelques classes d’utilitaires 

·         Les classes d’encapsulation des types.

·         Les classes de conteneurs.

·         Les classes d’observateurs. 

Les I/O simples 

·         La hiérarchie des classes d’entrée/sortie.

·         Quelques classes de manipulation des systèmes de fichiers. 

·         Quelques classes d’entrée/sortie travaillant sur les flots de bytes, sur les flots de char.

·         Les entrées/sorties clavier. 

Eléments de programmation multithread 

·         Les threads : création/destruction.

·         L’ordonnancement.

·         La synchronisation générale : la séquencialisation des méthodes et des instructions, les moniteurs.

·         Différences entre jdk1.1 et jdk1.2. 

Eléments de programmation graphique (awt) 

·         Les concepts de base : principes de la visualisation et de la gestion des événements depuis jdk1.1, classes génériques.

·         Les conteneurs et les Layouts : BorderLayout, FlowLayout, GridLayout, GridBagLayout et CardLayout.

·         Les composantes de l’interface : labels, boutons, menus, zones de texte, boîtes à cocher, les canevas.

·         Les gestionnaires d’événements : Listeners et Adapters. Association de gestionnaires à des composants. 

L’Internet et le Web 

·         Quelques concepts réseaux de base : adressage, routage, les protocoles IP, UDP, TCP.

·         Les constituants du Web.

·         Présentation des principaux protocoles et standards du Web : les URL, le langage HTML, la norme MIME, le protocole http.

·         Les applets : les principes, le cycle de vie, la classe Applet, l’intégration dans une page HTML, le passage des paramètres, les problèmes de sécurité. 

Approche de la programmation réseau 

·         Les concepts de base de la programmation réseau : l’adressage, le transport,...

·         La programmation par socket : communication par datagrames (les classes java correspondantes), communication client/serveur (les classes java correspondantes), serveur séquentiel vs serveur concurrent. 

Conclusions 

·         Premiers bilans sur le langage.

·         Les tendances actuelles.

·         Eléments de bibliographie.

Travaux pratiques

·         Mise en pratique des éléments de méthodologie orientée objets.

·         Construction de plusieurs applications simples mettant successivement en œuvre tous les éléments du langage : classes, héritage, interfaces, exceptions,...

·         Construction d’une application multithread.

·         Construction d’une application graphique grâce à l’awt.

·         Ecriture d’applets.

Tous les exercices comportent une phase d’analyse à l’aide des concepts méthodologiques de la programmation orientée objets. 


Exemples

Bibliographie

Le manuel
Site Web Java chez Sun
Ressources Java chez Gamelan
Site Java chez Microsoft