La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

A propos de java Sun, fin 1995 C++ nettoyé semi-interprété (ou : semi-compilé)

Présentations similaires


Présentation au sujet: "A propos de java Sun, fin 1995 C++ nettoyé semi-interprété (ou : semi-compilé)"— Transcription de la présentation:

1 A propos de java Sun, fin 1995 C++ nettoyé semi-interprété (ou : semi-compilé)

2 Langages compilés Autres fichiers compilés (bibliothèques …) Fichier code machine Fichier source compilation Fichier exécutable Édition de liens exécution code machine lié à larchitecture de la machine Pascal, ADA, C, C++,...

3 Autres fichiers sources chargés à la demande Fichier source Exécution par un interpréteur Langages interprétés Interprétation : traduction du code source en code machine « à la volée » Lisp, Prolog, shell Unix, Javascript, php,...

4 Et Java? pseudo-code Pseudo-code : code pour une machine abstraite possède des fonctionnalités communes à toutes les architectures exécution Interprétation du pseudo-code compilation Fichier source.java Fichier code machine.class par une "machine virtuelle"

5 Pré-compilation en un code universel (pseudo-code ou byte-code) donc indépendant de toute architecture Puis interprétation par une machine virtuelle (propre à chaque architecture de machine) (toutefois il existe des compilateurs en code natif) Vieille idée : voir le 1er Pascal + portabilité du code compilé - exécution moins rapide

6 A propos de java Sun, fin 1995 C++ nettoyé semi-interprété pour des applications distribuées (sur Internet notamment)

7 Client Serveur NavigateurServeur web Visualisation du document Intro.html? Intro.html Le succès de Java a d'abord été lié au web

8 Applet programme invoqué dans un document HTML et exécuté par un navigateur (depuis HTML 4, remplace )

9 Trois sortes de programmes Java Applet : programme invoqué dans un document HTML et exécuté par un navigateur Application : programme "classique" Servlet programme invoqué par un serveur web et exécuté sur la machine du serveur

10 Java en tant que langage de programmation par objets Exemple d'application : Shogun

11 Une application = un ensemble d'objets qui ont chacun leur rôle à jouer et qui interagissent Composants graphiques fenêtre barre de menu bouton zones de texte panneau (sur lequel est affiché le jeu) Objets autres…

12 Objets autres : échiquier ensemble de pièces 1 ensemble de pièces 2 jeugère une partie gère la "grille" elle même pièces une pièce gère sa position sur l'échiquier elle sait se déplacer et s'afficher

13 Les objets collaborent entre eux, chacun étant responsable des actions qu'il effectue Ex : afficher le jeu panneau jeu : "jeu, affiche-toi" jeu : "echiquier, affiche-toi" "ens. pièces 1, affiche-toi" "ens. pièces 2, affiche-toi" ens. pièces 1 : à chaque pièce : "pièce, affiche-toi"ens. pièces 2 : à chaque pièce : "pièce, affiche-toi"

14 Ex: gérer le début de mouvement du joueur 1 Clic! sur panneau de jeu en (i,j) jeu est averti (i,j) c'est quelle case? c'est (l,c) as-tu une pièce en (l,c)? pièces jeu echiquier pièce, es-tu en (l,c)? ens pièces 1

15 Les objets sont des instances de classes Une classe est un "modèle" qui définit - la structure dun objet (ses attributs) - et son comportement (ses méthodes) La structure des objets est (+ ou -) encapsulée, ainsi que certaines de leurs méthodes

16 Partie privée "encapsulée" attributs private : accessible seulement dans le corps des méthodes de la classe public : accessible par toute méthode de toute classe + des méthodes de « cuisine interne » Partie publique méthodes de « service » Une classe ordinaire

17 La classe Piece (simplifiée) // fichier Piece.java public class Piece { // attributs private int joueur; private int lig; private int col; private int depl; // méthodes … } Deux instances de Piece

18 // méthodes private int tirage() {…} public Piece(int j, int l, int c) {…} public int quelDeplacement() {…} public void deplacer(int nouvL,int nouvC) {…} public void afficher(…) {…} public String toString() {…} } Pas besoin de connaître le corps des méthodes pour communiquer avec une instance de Piece

19 Ex: l'objet jeu demande à la pièce p de se déplacer en case (4,3) p.deplacer(4,3) D'ailleurs, jeu n'a pas le droit de modifier directement p : p.lig = 4; p.col = 3; car col et lig sont encapsulés C'est p qui modifie son propre état jeu n'a pas besoin de savoir comment p procède

20 On dit que les objets communiquent par envoi de message : jeu envoie à p le message "deplacer(4,3)"

21 Constructeur : méthode qui sert à initialiser automatiquement un objet lors de sa création Mais comment crée-t-on un objet? Intérêt : éviter les oublis d'initialisation public Piece(int j, int l, int c) {joueur = j; lig = l; col = c; depl = tirage();}

22 Commençons par savoir nommer les objets Il existe des variables appelées références, qui servent à désigner des objets Piece p1; // déclaration d'une référence Piece p1 = null; // déclaration + initialisation

23 @ new Piece(0,2,3) 3. Retourne de l'objet … … reste à récupérer cette adresse 1. Crée une instance de la classe Piece réservation d'une place en mémoire 2. Appelle un constructeur sur cet objet Initialisation de l'objet Création d'un objet

24 Piece p; p = new Piece (0,2,3);

25 Equivalent Delphi de ces actions var p : Piece ; p := Piece.create(0,2,3); Piece p ; p = new Piece (0,2,3);

26 Objets et références ne sont pas liés "à vie" Un objet peut avoir plusieurs noms, aucun nom, ou changer de nom Piece p1 = new Piece (0,2,3); Piece p2 = p1; p1 = new Piece(0,1,1); p2 = null;

27 Structure d'une application Java un ensemble de classes, dont lune comporte une méthode main public class Hello { public static void main (String args[]) { System.out.println("Bonjour, monde!"); }

28 public class MonAppliTest { public static void main (String args[]) { Piece p = new Piece(0,1,1); String etat = p.toString(); System.out.println("état de p :" + etat); int d = p.quelDeplacement(); p.deplace(1+d,1); etat = p.toString(); System.out.println("état de p :"+ etat); }

29 Bibliographie Java 2 : notions fondamentales (vol I), Sun microsystems, 1999 Très orienté "pratique" Programmer en Java (2ème éd), Claude Delannoy, Eyrolles, 2002 Précis, couvre en détails beaucoup daspects de Java Le langage Java, concepts et pratique, Irène Charon, Hermès, 2000 Java La synthèse (2ème éd), InterEditions, 1998 Bien pour concepts de programmation, en retard sur classes graphiques A la bibliothèque de l'IUT Autre

30 tutoriaux sur le site de Sun (in english of course) tout pour les développeurs francophones Web


Télécharger ppt "A propos de java Sun, fin 1995 C++ nettoyé semi-interprété (ou : semi-compilé)"

Présentations similaires


Annonces Google