Introduction à JAVA
description
Transcript of Introduction à JAVA
Introduction à Java 1
Introduction à JAVA
Sylvie BillotMaître de Conférences en Informatique
Laboratoire d’Informatique Fondamentale d’OrléansUniversité d’Orléans
Introduction à Java 2
Bibliographie
• Java, la synthèse - G.CLAVEL, N.MIROUZE, S. MUNEROT, E.PICHON, M.SOUKAL (InterEditions 1998)
• Java par la pratique – P. NIEMEYER et J. PECK (O’Reilly 1996)
• Apprendre Java et C++ en parallèle – J.B. BOICHAT (Eyrolles 2000)
Introduction à Java 3
Sur l’Internet
• http://java.sun.com/docs/books/tutorial/
• www.eteks.com/coursjava/
• www.infres.enst.fr/~charon/coursJava/
• http://penserenjava.free.fr/
• http://www.club-java.com/
• http://www.commentcamarche.net/
Introduction à Java 4
Qu'est-ce que Java ?
• Un environnement de programmation pour applications réseaux
• Un langage de programmation objet (comme C++)
• Une architecture de «Virtual Machine» (les applications écrites avec JAVA sont indépendantes de la machine réelle)
• Un ensemble d'interfaces de programmation (Application Programming Interfaces ou API)
• Un ensemble d'outils (le Java Developer’s Kit)
Pré
sent
atio
n du
lang
age
Java
Introduction à Java 5
Bref historique• 1991 : projet Oak (langage pour l'électronique grand public)• 1994 : Java / HotJava • août 95 : licence vendue à Netscape• Sept. 95 : JDK 1.0 b1• Déc. 95 : Microsoft se dit intéressé• Janv. 96 : JDK 1.0.1• Eté 96 : Java Study Group ISO/IEC JTC 1/SC22• Fin 96 : RMI, JDBC, JavaBeans, ...• Mars 97 : JDK 1.1• Début 98 : JDK1.2
His
tori
que
Introduction à Java 6
Caractéristiques - 1
Données
ProcéduresetFonctions
Programmation «classique» Programmation «objet»
attributs
méthodes
messages
Car
acté
rist
ique
s de
Jav
a
En Java, tout est «classe»
Introduction à Java 7
Brève «histoire» de la programmation -1-
Car
acté
rist
ique
s de
Jav
a
• Un programme = une tâche à accomplir, une tâche à résoudre
• Modéliser cette tâche/ ce problème ALGORITHME
• Traduire en instructions exécutables par la nachine PROGRAMME
• Etude des «bonnes méthodes» de conception/programmation
= GENIE LOGICIEL
Introduction à Java 8
Brève «histoire» de la programmation -2-
Car
acté
rist
ique
s de
Jav
a
• «Préhistoire» : la machine EST le programme, les données sont externes (cartes)• Machine de Von Neumann : séparation
contrôle (programme) exécution (UC/UAL) données (Mémoire)
• Langage machine• Assembleur (mnémonique)• Instructions : FORTRAN, COBOL (années 50)
Introduction à Java 9
Brève «histoire» de la programmation -3-
Car
acté
rist
ique
s de
Jav
a
• Langages structurés : ALGOL, Pascal (années 60) blocs d’instructions, procédures, fonctions instructions standards (si, tantque, etc.) typage strict des données
• Langages modulaires : Modula, Ada (années 70)regrouper les sous-programmes en modules programmer par assemblages de modules
• Leçon : plus d’abstraction permet plus de sûreté de programmation (programmes plus aisés à concevoir, plus faciles à lire et à maintenir, plus portables)• Mais la conception se résume toujour à «Comment faire ?» (i.e. quelle suite d’instructions utiliser?)
Introduction à Java 10
Brève «histoire» de la programmation -4-
Car
acté
rist
ique
s de
Jav
a
• Langages déclaratifs : années 60-70aller plus loin dans l’abstraction en spécifiant seulement ce qu’on veut calculer, en laissant au système le fait de savoir comment faire. La question est alors «Que faire ?»
programmation fonctionnelle (LISP) programmation en logique (Prolog)
• Dans tous ces modèles de programmation, les données restent extérieures, on se concentre sur les traitements• Alternative (sous l’influence des méthodes de conception de Bases de Données) : mettre les données au centre des préoccupations, ce sont elles qui détermine les actions. . .
Introduction à Java 11
Brève «histoire» de la programmation -5-
Car
acté
rist
ique
s de
Jav
a
• Le modèle objet : Simula (1967), Smalltalk, C++, JavaUn programme est un ensemble d’objets indépendants qui collaborent par envoi/réception de messagesLa question devient «Qui fait quoi ?»
Abstraction : la réalité est «conceptualisée» Modularité : le programme est un ensemble d’objets, des modules cohérents et organisés Encapsulation, polymorphisme, surcharge Avantages : lisibilité, maintenance, réutilisabilité, composabilité, extensabilité, unification des méthodes de conception (UML) et des langages (Java)
Introduction à Java 12
Comparaison de Java et C++
• Quasiment la même syntaxe• Java plus simple car suppression des notions de
– Pointeurs– Surcharges d’opérateurs– Héritage multiple– Libération explicite de mémoire (pas besoin de
destructeurs en Java)– Particularité des chaînes et tableaux (ce sont des objets
en Java)
• Java moins rapide car portabilité
Car
acté
rist
ique
s de
Jav
a
Introduction à Java 13
• Java est orienté objet
• simple à prendre en main, il permet de développer rapidement des applications
• Langage à la fois compilé et interprété :
– Java produit du byte-code indépendant de la plate forme et interprétable par une machine virtuelle : la Java Virtual Machine (JVM)
Car
acté
rist
ique
s de
Jav
a
Caractéristiques - 2
Introduction à Java 14
La machine virtuelle
code source
Compilateur
code machine
système d’exploitationMatériel
système d’exploitation
code source
Interpréteur
Matériel
+ =
code source
Compilateur
code machine
système d’exploitation
Matériel
byte-code
Interpréteur
Traducteur
JVM
Car
acté
rist
ique
s de
Jav
a
Introduction à Java 15
• à la fois compilé et interprété :
– un programme Java est ainsi exécutable dans n’importe quel environnement disposant d’une JVM
– Pas de phase d’édition de liens (garantit la PORTABILITE)
• Java est multi-thread (plusieurs tâches ensembles)
• Java est distribué (applications clients-serveur)
Car
acté
rist
ique
s de
Jav
a
Caractéristiques - 3
Introduction à Java 16
Les paquetages centraux de Java
String
Thread
…
lang
File
…io
Applet
AudioClip…
applet
URL
Socket
…
net
Graphics
Component
…
awt
Introduction à Java 17
Java est • robuste (vérification du comportement du
code, traitement des exceptions)
• portable (indépendant de toute architecture)
• sécurisé (vérification de la légalité du code, fonctionnement du «Class Loader»)
• dynamique (classes chargées selon les besoins)
Car
acté
rist
ique
s de
Jav
a
Caractéristiques - 4
Introduction à Java 18
Programmer en Java
• Les applicationsS’exécutent dans le système d’exploitation à condition
d’avoir installé une machine virtuelle
• Les applets Petites applications destinées à fonctionner sur un navigateur.
Une applet a un champ d’action plus réduit qu’une application.
Pro
gram
mer
en
Java
Introduction à Java 19
Serveurs Web
Programme ClientProgramme Serveur
Internet
ezezrzrerttrrteztrezrrz
Documents
Document(s)
Document(s)
requête
INT
ER
NE
T
Navigateur
Introduction à Java 20
Documents Web
Plan du cours
1. Introduction2. La programmation Objet3. Des applications
Des références :Cours Java de Patrick Iteysite de comment ca marche
Introduction1. Présentation de JavaJava est un environnement de programmation pour applications réseaux, orienté objet . . . .
Internet
URL : http://www.univ-orleans.fr/billot/plan.html
INT
ER
NE
T
Introduction à Java 21
page HTML
<HTML><HEAD><TITLE>plan </TITLE></HEAD><BODY><center><b><i>Plan du cours :</i></b></center><a href="ch1.html#Intro">1. Introduction</a>. . .</BODY></HTML>
fichier plan.html :INT
ER
NE
T
Introduction à Java 22
pages dynamiquesListe des films à l’affiche
à L’ArcC’est la vie
13h30 - 15h30 - 17h3019h50 - 22h
Le journal de Bridget Jones12h10 - 16h20 - 20h
Le petit poucet12h - 14h
Liste des sallesLe grand Ecran
rue des rosesL’Arc
place d’ArcLe Martroi
place du martroi
INT
ER
NE
T
Introduction à Java 23
<HTML><HEAD><TITLE>liste des films dans une salle</TITLE></HEAD><BODY><u>Liste des films à l’affiche</u><applet code = "films.class" width =100 height =50><param name = "salle" value =$Salle>Votre browser ne supporte pas les applets!</applet></BODY></HTML>
INT
ER
NE
Tpage HTML avec applet
Introduction à Java 24
Sécurité en Java
• Visualiser les scénarios d’attaque• Concevoir un jeu de base des
comportements malveillants• Concevoir une architecture de sécurité
contre les comportements malveillants• Technique globale de protection :
n’accepter que les applets signées et cryptées.
INT
ER
NE
T
Introduction à Java 25
Java Development Kithttp://java.sun.com/products
ou http://www.javasoft.com
• JDK 1.0.x : compatibles avec Java 1.0 spécifications originales, API et classes élémentaires
• JDK 1.1.x : compatibles avec Java 1.1améliorations + JavaBeans, JDBC, RMIévénements, sécurité, servlets, JNI
• JDK 1.2.x : compatibles avec Java 2 Swing, améliorations des JavaBeans, API Java2D, API d’accessibilité
La
Pla
te-f
orm
e de
dév
elop
pem
ent J
ava
Introduction à Java 26
Le JDK contient
La
Pla
te-f
orm
e de
dév
elop
pem
ent J
ava
• javac : compilateur des sources Java (produit du byte-code)
• java : interpréteur de byte-code• appletviewer : interpréteur d’applets • javadoc : générateur de documentation HTML• jdb : débogueur• javap : un décompilateur (revenir du byte-code au source)• jar : compresseur de classes Java
Introduction à Java 27
Les Application Programming Interfaces (API)
La
Pla
te-f
orm
e de
dév
elop
pem
ent J
ava
Ensembles de classes mises à la disposition du programmeur;L’API Java Core contient :• java.lang : types de base, Threads, Exceptions• java.io : accès aux I/O• java.util• java.net• java.awt• java.applet• java.math• java.text
Introduction à Java 28
Développer avec JavaUne application Java est organisées en modules (package).Un module contient une ou plusieurs définitions de classes
dont une seule est publique.Le nom du fichier = celui de la classe publique + «.java»
stocker le code source dans un fichier «.java» javac compile ce fichier et le transforme en fichiers de byte-code de suffixe «.class» java (l’interpréteur) charge ce byte-code et le vérifie après vérification, exécution de byte-code
cycle de développement
Pro
gram
mer
en
Java
Introduction à Java 29
Une application Java
public class Bonjour{public static void main() {
System.out.println("Bonjour!!!");}
}
Le texte
est sauvegardé dans le fichier «Bonjour.java»Pour compiler :.
javac Bonjour.java
Cette commande crée le fichier «Bonjour.class»
java BonjourPour l’exécuter :.
Pro
gram
mer
en
Java
Introduction à Java 30
Une applet Java
public class BonjourAp extends java.applet.Applet{public void paint(java.awt.Graphics g) {
g.drawString("Bonjour!!!", 125,95);}
}
Le texte
est sauvegardé dans le fichier «BonjourAp.java»Pour compiler :.
javac BonjourAp.java
Cette commande crée le fichier «BonjourAp.class»
Pro
gram
mer
en
Java
Introduction à Java 31
Une applet Java (suite)Pour l’exécuter, écrire la page HTML:.
<HTML><HEAD><TITLE>l’applet Bonjour </TITLE></HEAD><BODY>Voilà le résultat :<applet code = "BonjourAp.class" width =300 height =200></applet></BODY></HTML>
puis l’ouvrir avec appletviewer ou son navigateur préféré. . .
Pro
gram
mer
en
Java
Introduction à Java 32
Le phénomène «JAVA»
Con
clus
ion
• Langage non «propriétaire»• intègre les progrès des deux dernières décennies :
objets, exceptions, threads• propose toutes les API nécessaires pour programmer les
Systèmes d’Information des entreprises• environnement d’exécution (portabilité + performance)• distribution sur plates-formes variées, en évolution rapide