LE Java Cour Intro

Embed Size (px)

Citation preview

  • 7/24/2019 LE Java Cour Intro

    1/7

    Cours d'introduction Java : programmation

    ? 1 Le concept Java? 2 Notion d'objets? 3 Structures de donnes

    ? 4 instructions de base? 5 Controle du flot de donnes? 6 Bibliothques de classes et scurit? 7 applications et applets? 8 Exercices pratiques? 9 Par del cette introduction?

    10 Rfrences utiles

    Cette page propose une introductions la programmation en Java.Elle a pour vocation de prsenter les lments remarquables dulangages et propose pour chacun de ceux-ci des rfrencesbibliographiques consulter (des exemplaires des livres cits setrouvent dans le bureau D334) ainsi que des liens vers des exemples

    ou plus gnralement des sources d'informations hypertextuelles.

    Cette page reste evidemment sommaire et reste sujette des

    modifications en fonctions de vos besoins et dse commentaires quevous nous ferez.

    Pour trouver des informations utiles sur l'intallation de Java, cliquerici.

    1 Le concept Java :

    Java est un langage invent par les dveloppeurs de Sun. Si les basesde ce langage ont t concues en 1990, Java reste encoreaujourd'hui dans une phase de dveloppement.

  • 7/24/2019 LE Java Cour Intro

    2/7

    Selon les dveloppeurs de Sun, Java (qui signifie caf en argotamricain) est un langage : simple, orient-objet, distribu,interprt, robuste scuris, neutre vis vis de l'architecture,

    portable, haute performance, multi-threaded et dynamique. Mis part l'aspect de haute performance qui est TRES loin d'etre vrifi,Java dispose bien des fonction numres.

    Comment ca fonctionne en gros ?

    Le programmeur crit un code qui est transform par le compilateurJava en une srie d'instructions qui ressemble du langage machine(pseudo-code) mais que la machine est incapable d'excuter. On

    fournit ce pseudo-code un programme spcial (un interprteur) quixcute l'une aprs l'autre les instructions du pseudo-code.L'interprteur peut tre un navigateur Web (comme NetscapeNavigator) ou un programme indpendant plus ou moins cach dans lesystme d'exploitation de l'ordinateur. Le pseudo-code utilise lammoire de la machine, mais un mcanisme (le ramasse-miettes)rcupre la mmoire ds que possible ce qui permet ainsi d'autres

    programmes de tourner. Le pseudo-code peut faire appel desbibliothques de classes qui sont tout simplement des programmescrits par d'autres programmeurs. Ces bibliothques de classespermettent au programmeur d'viter d'avoir rcrire sans cessedes fonctionnalits classique. Par exemple, les bibliothques declasses contiennent des classes permettant de dessiner un bouton,d'ouvrir une connexion avec le rseau, de jouer de la musique... Cesbibliothques de classes ne se trouvent pas forcement sur la machine

    o s'execute le pseudo-code. L'interprteur va alors les chercher oil faut sur le rseau. En fait, vous avez peut tre dja utilis Javasans mme le savoir, simplement en allant surfer sur le Web. Lesprogrammes excuts par les navigateurs sont appels appletscontrairement aux programmes autonomes appels comme il se doitapplications.

    2 Notion d'objets :

  • 7/24/2019 LE Java Cour Intro

    3/7

    Java est un langage orient objet. Cela signifie qu'il ralise unensemble de concepts lui permettant de dpasser le cadre du simplelangage de programmation strutur (Pascal, C...). En particulier, Javaintgre les notions (voir Linden, pp. 35-65) :

    ? d'abstraction par des classes? de polymorphisme (surcharge d'une mthode et surclassaged'unemthode de la classe suprieure)? d'encapsulation (: c'est dire qu'il existe des regles pour dciderquels sont les objets qui peuvent tre appels par un autre objet)? d'hritagesimple

    3 Structures de donnes :

    Il existe en Java des typesde donnes. On peut schmatiquementdiviser ces types en types simples (entier, double, boolen...) et entypes structurs(c'est dire des tableaux ou toute structure quicombine l'utilisation de plusieurs types simples).

    4 instructions de base :

    De plus, Java, par sa vocation oriente objet, introduit un ensemblede d'instructions essentielles permettant :

    ? la dfinition de classes? la dfintion de mthodes? la dfinition d'un constructeur(et destructeur) d'une instance declasse

    ? l'appel d'une mthode? l'appel d'une instance de classe

    Par ailleurs, Java propose un ensemble de mcanismes pratiques(repris du langage C) permettant :

    ? la notation de commentaires? la notation d'oprateurset de sparateurs pour les expressions

    5 Controle du flot de donnes :

  • 7/24/2019 LE Java Cour Intro

    4/7

    Java prsente un jeu d'instruction standard issu des langagesactionnels (par opposition aux langages fonctionnels comme LISP) etpermettant de controler le flot des donnes(c'est dire la manire

    de rpartir les traitements d'informations au sein d'un programme.En particulier, Java permet d'utiliser :

    ? des branchements conditionnels? des boucles? des labels

    6 Bibliothques de classes et scurit :

    Java propose une hierarchie de classes comme autant de niveauxd'abstractions sur des objets. Les developpeurs de Java ont concu ungrand nombre de classes pretes l'emploi evitant au programmeurd'avoir rcrire des fonctions classiques pour la nime fois. Cesclasses constituent ce que l'on appelle une bibliothque de classes.Elles sont prvues de manire ce que le programmeur puisse insrerses classes comme spcifications des classes existantes dans labibliothque. Les mcanismes d'interfaces et de classe abstraitesont particulirements utiles cet gard. Un mcanisme de scuritcomplet (et complexe) permet en outre de garantir la protection ducode produit par chaque programmeur fiabilisant ainsil'environnement tout en empechant les mauvaises intentions(utilisation de code priv, distribution de code potentiellementdangereux...).

    En rsum, Java propose :

    ? des classes hierarchises? des interfaceset des classes abstraites? des mcanismes de scurit

    7 applications et applets :

    Java peut tre employ dans deux objectifs diffrents :

  • 7/24/2019 LE Java Cour Intro

    5/7

    ? Soit pour produire des applications classiques (standalone)fonctionnant comme n'importe quel logiciel classique de votreordinateur.

    ? Soit pour construire des applications distribues (applets)fonctionnant travers le Web et interfaces par un navigateur grce l'emploi judicieux de code HTML.

    Nous prsentons ci-dessous le mme programme (repris par exemplede Ritchey, pp. 111-124) crit soit sous la forme d'application soitsous la forme d'applet :

    ? Hello world format application (section "getting started")

    ? Hello World format applet (section "getting started")(et codepour l'appel depuis un fichier HTML)

    Pour les applets en gnral, voir aussi Macary & al., pp 195-202.

    8 Exercices pratiques :

    Java est un langage complet permettant d'cire n'importe quel

    programme. En particulier, Java peut permettre d'effectuer destches de calculs, des tches graphiques, de gnrer du VRML...

    Au cours des semaines et des mois venir, des exemples serontaccessibles partir d'ici. Pour l'instant toutefois, il existe peu deprogrammes interessants crits en Java, il faudra donc attendre unpeu.

    9 Par del cette introduction :Pour une sance suivante, il reste voir :

    ? la gestion des erreurs (les exceptions) (voir Macary & al., pp. 177-194)? les bibliothques de classes (suite) : les graphiques

    Pour une sance encore plus lointaine :

  • 7/24/2019 LE Java Cour Intro

    6/7

    ? l'utilisation du parallelisme (le multi-threading) (voir Macary & al.,pp. 149-176)? les bibliothques de classes (fin) : les entres sorties et le rseau

    10 Rfrences utiles :

    ? Tutoriel Java (repris de chez Sun) disponible localement.? Bishop, J. (1998). Java Gently, Second Edition, Addison-Wesley,Essex, England.

    Excellent ouvrage pour les dbutants, il vous fait progresser exemple

    par exemple non seulement la dcouverte du langage Java mais

    aussi la dcouverte des concepts de la programmation rienteobjet.

    ? Flanagan, D. (1997). Java in a Nutshell, Second Edition, O'Reilly &Associates, Sebastopol, CA.

    Un ouvrage de rfrence pour programmeurs chevronns. Les

    descriptions sont succintes et destines essentiellement des

    adeptes du langage C qui tentent une reconversion Java. Ladescription de la bibliothques de classes est un modle du genre. Lelivre n'en est pas moins complet par ailleurs.

    ? Flanagan, D. (1997). Java Examples in a Nutshell, O'Reilly &Associates, Sebastopol, CA.

    Ce livre est annonc comme le compagnon de Java in a Nutshell.

    Effectivement, il est difficile d'acheter l'un sans l'autre puisque iln'y a aucun exemple dans Java in a Nutshell. Au contraire, dans celui-ci, tous les aspects de Java sont passs en revue par des exemples,de l'interface graphique aux rseaux en passant par les bases dedonnes.

    ? Macary, J-F. et Nicolas, C. (1996). Programmation Java, Eyrolles,Paris.

  • 7/24/2019 LE Java Cour Intro

    7/7

    Intressant pour son aspect simple et pour son approche comparativepar rapport au langage C. Recommand pour des dbutants, desexplications et l'emploi de sources d'informations complmentairesrestent ncessaires. Probablement parteillement obsolte.

    ? Ritchey, T. (1995). Java!, New Riders Publishing, Indianapolis, IN.

    Cet ouvrage propose une dcouverte trs progressive de Java, des

    outils associs et des environnements. Toutefois, malgr la quantitimpressionnante des explications fournies pour chaque nouveauconcept introduit, ce livre reste d'un contenu assez pauvre. Parailleurs, ce livre est obsolete.

    ? Van der Linden, P. (1996). Just Java, Sun Microsystems, MountainView, CA.

    Produit par la firme qui a dveloppe Java, ce livre estmalheureusement trs incomplet.

    (aller au Tutoriel JAVA-VRML)S.M.M.