32
Introduction à Java 1 Introduction à JAVA Sylvie Billot Maître de Conférences en Informatique Laboratoire d’Informatique Fondamentale d’Orléans Université d’Orléans [email protected]

Introduction à JAVA

  • Upload
    taite

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

Introduction à JAVA. Sylvie Billot Maître de Conférences en Informatique Laboratoire d’Informatique Fondamentale d’Orléans Université d’Orléans [email protected]. Bibliographie. Java, la synthèse - G.CLAVEL, N.MIROUZE, S. MUNEROT, E.PICHON, M.SOUKAL (InterEditions 1998) - PowerPoint PPT Presentation

Citation preview

Page 1: 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

[email protected]

Page 2: Introduction à JAVA

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)

Page 4: Introduction à JAVA

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

Page 5: Introduction à 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

Page 6: Introduction à JAVA

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»

Page 7: Introduction à JAVA

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

Page 8: Introduction à JAVA

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)

Page 9: Introduction à JAVA

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?)

Page 10: Introduction à JAVA

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. . .

Page 11: Introduction à JAVA

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)

Page 12: Introduction à 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

Page 13: Introduction à JAVA

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

Page 14: Introduction à JAVA

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

Page 15: Introduction à JAVA

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

Page 16: Introduction à JAVA

Introduction à Java 16

Les paquetages centraux de Java

String

Thread

lang

File

…io

Applet

AudioClip…

applet

URL

Socket

net

Graphics

Component

awt

Page 17: Introduction à JAVA

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

Page 18: Introduction à JAVA

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

Page 19: Introduction à JAVA

Introduction à Java 19

Serveurs Web

Programme ClientProgramme Serveur

Internet

ezezrzrerttrrteztrezrrz

Documents

Document(s)

Document(s)

requête

INT

ER

NE

T

Navigateur

Page 20: Introduction à JAVA

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

Page 21: Introduction à JAVA

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

Page 22: Introduction à JAVA

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

Page 23: Introduction à JAVA

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

Page 24: Introduction à JAVA

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

Page 25: Introduction à JAVA

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

Page 26: Introduction à JAVA

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

Page 27: Introduction à 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

Page 28: Introduction à JAVA

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

Page 29: Introduction à 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

Page 30: Introduction à 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

Page 31: Introduction à 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

Page 32: Introduction à 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