Histoire de Java. Projet de connexion des machines: Le nom Java a été introduit dans un café. Développé par Sun

Documents pareils
Programmer en JAVA. par Tama

as Architecture des Systèmes d Information

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Java Licence Professionnelle CISII,

Introduction au langage C

Plan du cours. Historique du langage Nouveautés de Java 7

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

INITIATION AU LANGAGE JAVA

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Java Licence Professionnelle CISII,

Programmation en Java IUT GEII (MC-II1) 1

TP1 : Initiation à Java et Eclipse

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Auto-évaluation Programmation en Java

PROGRAMMATION PAR OBJETS


Langage Java. Classe de première SI

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Notions fondamentales du langage C# Version 1.0

Une introduction à Java

Généralités sur le Langage Java et éléments syntaxiques.

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Programmation Web. Madalina Croitoru IUT Montpellier

GOL502 Industries de services

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Chapitre VI- La validation de la composition.

COMPARAISONDESLANGAGESC, C++, JAVA ET

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Initiation à JAVA et à la programmation objet.

Claude Delannoy. 3 e édition C++

Bases Java - Eclipse / Netbeans

Cours 1: Java et les objets

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

La technologie Java Card TM

Génie Logiciel avec Ada. 4 février 2013

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

4. Groupement d objets

SUPPORT DE COURS. Langage C

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

XML : documents et outils

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Java c est quoi? Java pourquoi?

Héritage presque multiple en Java (1/2)

UE C avancé cours 1: introduction et révisions

Conventions d écriture et outils de mise au point

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Web Tier : déploiement de servlets

Objets et Programmation. origine des langages orientés-objet

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Créer une base de données vidéo sans programmation (avec Drupal)

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

INF 321 : mémento de la syntaxe de Java

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Introduction à l algorithmique et à la programmation M1102 CM n 3

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Java 1.5 : principales nouveautés

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Le Modèle de Sécurité dans JAVA

Analyse de sécurité de logiciels système par typage statique

Chapitre I Notions de base et outils de travail

Programmation Internet Cours 4

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Présentation du PL/SQL

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Mise en œuvre des serveurs d application

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Le prototype de la fonction main()

HTML. Notions générales

INFO-F-404 : Techniques avancées de systèmes d exploitation

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Introduction au langage Java

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Création et Gestion des tables

Programmation Par Objets

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Programmation C. J.-F. Lalande. 15 novembre 2012

Cours Bases de données 2ème année IUT

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Configuration système requise

Programmation en langage C

Cours d Algorithmique et de Langage C v 3.0

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Bases de programmation. Cours 5. Structurer les données

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Classe Interne, Anonyme & Enumération

Diagramme de classes

Transcription:

Université Laval Formation Java Novembre 2001 Jour 1 Jour 1 2 Plan Pourquoi Java? Types de données Structures de contrôle Passage de paramètres Héritage Visibilité Jour 1 3 1

Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé par Sun Déclaration officielle en Mai 1995 Jour 1 4 Origines de Java Développé à partir de C et C++ Pallier aux problèmes de C++ Pointeurs (sécurité) Gestion de la mémoire Affectations... Jour 1 5 JDK JDK: Java Development Kit Environnement de développement Java Version 1.3 http://www.sun.com Jour 1 6 2

Pourquoi Java? Indépendant de la plate-forme Langage objet Programmation concurrente Programmation Internet Jour 1 7 Indépendant de la plate-forme Code compilé vs. code exécutable Jour 1 8 Compiler (Pentium) Binary File (Pentium) Your Code Compiler (PowerPC) Binary File (PowerPC) Compiler (SPARC) Binary File (SPARC) Jour 1 9 3

Java Compiler (Pentium) Java Interpreter (Pentium) Your Code Java Compiler (PowerPC) Java Bytecode (Platform- Independent) Java Interpreter (PowerPC) Java Compiler (SPARC) Java Interpreter (SPARC) Jour 1 10 Java source code Across the Internet using HTML Java compiler Java bytecode Java interpreter Local computer Bytecode interpreter Machine code Web browser Java interpreter Remote computer Jour 1 11 Types La taille des types est fixe dans Java Tous les types sont signed Jour 1 12 4

Types Java C++ boolean 1 bit 8 bits char 16 bits 8 bits byte 8 bits short 16 bits 16 bits Jour 1 13 Types Java C++ int 32 bits 16 bits* long 64 bits 32 bits float 32 bits 32 bits double 64 bits 64 bits Long Double 80 bits Jour 1 14 Types Java est fortement typé en C++: int i; short j; i = j; en Java, il faut caster: inti; Short j; i = (int) j; Jour 1 15 5

Déclarations Variables (similaires): int entier; Constantes: java: final intentier = 0; C++: const intentier = 0; Jour 1 16 Structures de contrôle Conditionnelles: If switch Boucles: For while do while Pas d instruction goto en Java Jour 1 17 Structure if if (condition) {bloc1} else {bloc2} condition: expression logique Exemple: If (vosventes >= 2*cible { performance = excellent ; bonus = 1000; } Jour 1 18 6

Structure switch switch (choix) { case variable1 : instructions break; case variable2 : instructions break;. } Jour 1 19 Boucle for for (expression1; expression2; expression3) { instructions } for (int i = 10; i > 0; i --) { n = n + i; } Jour 1 20 Boucle while while (condition) { instructions } while (I > 0) { n = n + i i --; } Jour 1 21 7

Boucle do while do { instructions } while (condition); do { n = n + i i --; } while (i > 0); Jour 1 22 Classes Mot clé: class Constructeur mais pas de destructeur Figure int périmètre; int surface; float calculper( ); float calculsur( ); Jour 1 23 Héritage Java: l héritage est public class Exemple extends Exercise C++: class Exemple: public Exercise Classe final: final class Exemple on ne peut instancier la classe Jour 1 24 8

Héritage Pas d héritage avec des classes final C++: public, protected ou private Java: public Jour 1 25 Classe Object Classe racine class Exemple = class Exemple extends Object Référence un objet de n importe quel type Jour 1 26 Classe Object Monster FlyingMonster WalkingMonster Jour 1 27 9

Paramètres C++ : pointeurs références Java: valeurs références valeurs Jour 1 28 Paramètres Valeur: void calculersomme (int x, int y) Référence: void parsefile (File f) Pointeurs: void remplirchaine(element *q) Jour 1 29 Surcharge Surcharge de n importe quelle méthode Pas de surcharge des opérateurs En C++ et Java: fonctions homonymes: respecter la valeur de retour Jour 1 30 10

Visibilité Modifier Classes et interfaces Methodes et variables Default Visible dans un package Héritées dans le même package Accessibles dans le même package Public Visible Partout Accessibles partout Protected N/A Héritées par les sous classes Accessibles dans le même package Private N/A Non héritées Non accessibles Jour 1 31 Visibilité package One class p public a() protected b() c () private d() P x = new P(); C2 y = new C1(); C2 z = new C2(); class Another1 package Two class C1 class C2 class Another2 Jour 1 32 Classes abstraites Fonctions non toutes implantées Mot clé: abstract C++ : pure virtual methods Jour 1 33 11

Classe Abstraite Tree Class (Abstract) Tree Tree Tree Tree Jour 1 34 Polymorphisme C++ : méthodes virtuelles pures Par défaut en Java liaison dynamique (late binding) Jour 1 35 Plan XML XML vs HTML Objectifs de XML Applications de XML Structure d un document XML Les éléments d une DTD Jour 1 36 12

XML vs HTML XML : décrit des langages de balisage XML est un méta-langage XML : moyen pour définir des tags et leurs relations XML : documents structurés sur le Web Jour 1 37 XML vs HTML <table> <tr><td>empno</td><td>ename</td><td>job</td></tr> <tr><td>7654</td><td>martin</td><td>salesman</td></tr> <tr><td>7788</td><td>scott</td><td>analyst</td></tr> </table> Jour 1 38 XML vs HTML <?xml version="1.0"?> <EMPLIST> <EMP> <EMPNO>7654</EMPNO> <ENAME>MARTIN</ENAME> <JOB>SALESMAN</JOB> </EMP> <EMP> <EMPNO>7788</EMPNO> <ENAME>SCOTT</ENAME> <JOB>ANALYST</JOB> </EMP> </EMPLIST> Jour 1 39 13

XML vs HTML XML Contenue de l information Tags définis par le user Balises de début et de fin Attributs avec quote ou double quote Noms d éléments et d attributs sont case sensitive HTML Présentation du contenu Tags fixes <P> et <B> non pas de balises de fin Navigateurs n ont pas cette contrainte Noms d éléments et d attributs ne sont pas case sensitive Jour 1 40 Objectifs de XML XML : utilisation sans difficulté sur le net XML : soutenir une grande variété d applications XML : compatible avec SGML Jour 1 41 Objectifs de XML Documents facile à traiter (des programmes) Le nombre d options doit être réduit au minimum Les documents devraient être lisibles par l homme Les documents raisonnablement clairs Jour 1 42 14

Objectifs de XML Un document XML devrait être conçu rapidement La conception doit être formelle et concise Création facile de documents XML Jour 1 43 Applications de XML Navigation et applications hétérogènes Distribution des traitements Différentes vues pour différents utilisateurs Communication entre agents Jour 1 44 Applications de XML Intégration d applications Définition d ontologies Commerce électronique Jour 1 45 15

Applications de XML CML (Chemical Markup Langage) MathML (Mathematical Markup Langage) Traitement automatique de données Jour 1 46 Structure d un document XML <?xml version="1.0"?> <note> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> Jour 1 47 Structure d un document XML <?xml version="1.0"?> : la version de XML utilisée <note> : la racine du document Les autres éléments sont les enfants de la racine Jour 1 48 16

Structure d un document XML HTML : <p>c est un paragraphe paragraphe <p>voici un autre XML: <p>this is a paragraph</p> paragraph</p> <p>this is another Jour 1 49 Structure d un document XML Les tags sont case sensitive: <Message>This is incorrect</message> : non correcte <message>this is correct</message>: correcte Les tags doivent être correctement imbriqués: HTML: <b><i>ce texte est en gras et italique</b></i> XML: <b><i> Ce texte est en gras et italique </i></b> Jour 1 50 Structure d un document XML Tout document XML doit avoir une racine: <racine> <fils> <sousfils> </sousfils> </fils> </racine> Jour 1 51 17

Structure d un document XML Les attributs d un tag doivent être entre quôtes: <?xml version="1.0"?> <note date="12/11/99"> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> Jour 1 52 Structure d un document XML Eléments vs Attributs: Avec attributs: <person sex="female "> <firstname >Anna</firstname> <lastname>smith</lastname> </person> Sans attributs: <person> <sex>female </sex> <firstname >Anna</firstname> <lastname>smith</lastname> </person> Jour 1 53 Structure d un document XML Les attributs ne peuvent pas avoir plusieurs valeurs Les attributs ne décrivent pas une structure Les attributs sont plus difficiles à manipuler par les programmes Jour 1 54 18

Structure d un document XML Pour valider un document XML, il faut une DTD DTD: Definition Type Document Elle doit être référencée dans le document XML: <?xml version="1.0"?> <!DOCTYPE note SYSTEM "InternalNote.dtd"> Jour 1 55 Constituants d une DTD Définir la structure d un document XML DTD interne DTD externe Jour 1 56 DTD interne <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> </note> Jour 1 57 19

Interprétation de la DTD <!DOCTYPE note : Défini la racine du document <!ELEMENT note (to,from,heading,body)> : défini une balise n Les fils de note sont: to, from, heading, body <!ELEMENT to (#PCDATA)> : déclarer l élément to et informe qu il renferme du texte (#PCDATA) Jour 1 58 DTD externe Déclaration : <?xml version="1.0"?> <!DOCTYPE note SYSTEM "InternalNote.dtd"> <note>.. <note> <!DOCTYPE note SYSTEM "InternalNote.dtd"> : note: est la racine du document InternalNote.dtd: le fichier qui contient la DTD externe Jour 1 59 DTD externe Structure : <?xml version="1.0"?> <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> Jour 1 60 20

Les constituants d u document XML Eléments Tags Attributs Entités PCDATA CDATA Jour 1 61 Eléments Block principal d un document XML Exemple: note, body Il peut contenir d autres éléments, texte ou être vide (br) Jour 1 62 Tags Délimiteurs d éléments Tag de début et Tag de fin pour délimiter le contenu d un éléme <body> corps de texte </body> Jour 1 63 21

Attributs Des informations extra concernant l élément Ils sont placés dans le Tag de début d un élément <img src="computer.gif"> Élément: img Attribut: src, valeur: computer.gif Jour 1 64 PCDATA PCDATA: Parsed Character Data le texte sera parsé Les tags à l intérieur du texte seront parsés Jour 1 65 CDATA CDATA: Character Data Le texte ne sera pas parsé Les tags à l intérieur du texte ne seront pas parsés Jour 1 66 22

Déclaration d éléments <!ELEMENT element-name (element-content)> Un élément déclaré vide: <!ELEMENT element-name (EMPTY)> exemple: <!ELEMENT img (EMPTY)> Jour 1 67 Déclaration d éléments Élément avec des données: <!ELEMENT element-name (#CDATA)> ou <!ELEMENT element-name (#PCDATA)> ou <!ELEMENT element-name (ANY)> exemple:<!element note (#PCDATA)> Jour 1 68 Déclaration d éléments Élément avec des sous éléments: <!ELEMENT element-name (child -element-name,...)> exemple: <!ELEMENT note (to,from,heading,body)> Les sous éléments doivent apparaître dans le même ordre Jour 1 69 23

Déclaration d éléments <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#CDATA)> <!ELEMENT from (#CDATA)> <!ELEMENT heading (#CDATA)> <!ELEMENT body (#CDATA)> Jour 1 70 Déclaration d éléments Une seule occurrence d un sous élément: <!ELEMENT element-name (child -name)> Exemple: <!ELEMENT note (body)> Au minimum une occurrence: <!ELEMENT element-name (child -name+)> exemple<!element note (body+)> Jour 1 71 Déclaration d éléments Zéro ou plusieurs occurrences d un sous élément: <!ELEMENT element-name (child -name*)> Exemple: <!ELEMENT note (body*)> Zéro ou une occurrence: <!ELEMENT element-name (child -name?)> exemple<!element note (body?)> Jour 1 72 24

Déclaration d éléments <!ELEMENT note (to+,from,header,body*,#pcdata)> Au moins un to Un seul header Zéro ou plusieurs body et du texte qu on peut parser Jour 1 73 Déclaration d attributs Un attribut est déclaré avec la déclaration ATTLIST <!ATTLIST element-name attribute-name attribute-type default-va Type: CDATA, ID, énumération, etc Valeur par défaut: #REQUIRED, #FIXED value, etc Jour 1 74 Déclaration d attributs DTD exemple: <!ELEMENT square EMPTY> <!ATTLIST square width CDATA "0"> XML exemple: <square width="100"></square> Jour 1 75 25

Déclaration d attributs Valeur par défaut: Syntaxe: <!ATTLIST element-name attribute-name CDATA "default-value DTD exemple : <!ATTLIST payment type CDATA "check"> XML exemple : <payment type="check"> Jour 1 76 Déclaration d attributs Attribut obligatoire: Syntaxe: <!ATTLIST element-name attribute_name attribute-type #REQUIR DTD exemple : <!ATTLIST person number CDATA #REQUIRED> XML exemple : <person number="5677"> Jour 1 77 Déclaration d attributs Attribut énumératif: Syntaxe: <!ATTLIST element-name attribute-name (eval eval..) default-value> DTD exemple : <!ATTLIST payment type (check cash) "cash"> XML exemple : <payment type="check"> or <payment type="cash"> Jour 1 78 26

Les entités Remplacer un texte qui se répète Entités internes Entités externes Jour 1 79 Les entités internes Syntaxe: <!ENTITY entity-name "entity-value"> DTD Exemple : <!ENTITY writer"jan Egil Refsnes."> <!ENTITY copyright "Copyright XML101."> XML exemple: <author>&writer;&copyright;</author> Jour 1 80 Les entités externes Syntaxe: <!ENTITY entity-name SYSTEM "URI/URL"> DTD Example : <!ENTITY writer SYSTEM "http://www.xml101.com/entities/entities.xml"> <!ENTITY copyright SYSTEM "http://www.xml101.com/entities/entities.dtd"> XML exemple: <author>&writer;&copyright;</author> Jour 1 81 27