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

Programme de baccalauréat en informatique Structures de données IFT-10541 Abder Alikacem TP4 Département d’informatique et de génie logiciel Édition septembre.

Présentations similaires


Présentation au sujet: "Programme de baccalauréat en informatique Structures de données IFT-10541 Abder Alikacem TP4 Département d’informatique et de génie logiciel Édition septembre."— Transcription de la présentation:

1 Programme de baccalauréat en informatique Structures de données IFT-10541 Abder Alikacem TP4 Département d’informatique et de génie logiciel Édition septembre 2006 Java

2 Introduction au langage Java Les grandes lignes de la syntaxe Java Processus de compilation et d'exécution Environnement Java, IDE

3 Java Mascotte (Duke) Logo (tasse à café)

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

5 Origines de Java Java est un environnement de programmation développé par Sun, adapté à la distribution d'application sur Internet. 4 éléments : Java est un langage de programmation objet Une machine virtuelle Des bibliothèques de classes ou des packages : API Application Programming Interface (3278 classes dans Java 1.5) Ensemble d'outils : java, javac, jdb javadoc, jar,... execution compilation debugger documentation archivage

6 API Java Plus qu'un langage de programmation, l'environnement Java propose une API (Application Programmer's Interface) ● L'API est structurée en package ● Pour programmer efficacement, une bonne connaissance de ces packages est indispensable. ● Ne pas refaire ce qui a déjà était fait (d'ailleur sûrement en mieux)

7 API Java java.lang : classes essentielles objet, types de base, processus java.util : structures de données (collections) listes, ensembles, hashtables, arbres, itérateurs java.awt : interface graphique (Abstract Window Toolkit) fenêtres, boutons, événements... java.io : entrées / sorties flot de données provenant de fichier, buffer, etc.. java.net : réseau URL, sockets java.rmi : objets distribués (Remote Method Invocation) java.sql : JDBC (Java Data Base Connectivity) connexion à une base de données relationnelle envoi de requêtes SQL, récupération des résultats java.beans : composants logiciels Pièces logicielles autonomes pouvant être contrôlées dynamiquement et assemblées pour former des applications javax.swings : interface graphique composants d'interface de plus haut niveau que ceux de awt look and feel indépendant de l'OS exploitation du modèle MVC (Model View Controler)

8 Versions Java 1.0.2 (1996) : le JDK : Java Development Kit, 212 classes, 8 paquetages version minimale des browsers web. Java 1.1.5 (1997) : 504 classes, 23 paquetages amélioration interface utilisateur (AWT), gestion des erreurs, cohérence du langage Java 1.2 (Java 2 en 1998) : 1520 classes, 59 paquetages Swing, Drag and drop, amélioration audio Java 1.3 (2001) J2SDK (nouveau nom) pour J2EE (Entreprise, serveur), J2ME (PDA) amélioration de la gestion mémoire, rapidité Java 1.4 (2002) : 2757 classes, 135 paquetages J2SDK → J2SE (nouveau nom), XML, expressions régulières, nouvelles E/S, accès à la mémoire vidéo (VolatileImage) pour l’accélération Java 1.5 (2005) : 3278 classes, 165 paquetages

9 JDK ( Java Development Kit ) Téléchargeable sur le site java.sun.com Outils java : JVM, interpréteur pour les programmes java javac : Compilateur Java appletviewer : JVM pour l'exécution des applets jar : Création et manipulation d 'archive java javadoc : Générateur de documentation Java au format HTML javap : désassembleur de classes Java compilées jdb : débogueur Java en ligne de commande javah : génère le header C ou C++ pour créer un pont compatible entre java et C/C++ Documentation en ligne : http://java.sun.com/docs/ Téléchargeable pour installation en local

10 IDE ( Integrated Development Environment ) Eclipse www.eclipse.orgwww.eclipse.org

11 Forces et faiblesses Facile à utiliser et sécuritaire Code lisible et réutilisable et facile à maintenir Gestion automatique de la mémoire L’API Lent à exécuter, nécessite une JVM Difficulté face aux applications gourmandes en mémoire Moins de mécanismes objet que C++

12 Java Premières applications Affichage et saisie Types de données et opérateurs arithmétiques Flux de contrôle et opérateurs logiques

13 Types de programmes Java Application ● Programme autonome (stand-alone) ● L'application doit posséder une classe principale ayant une méthode : public static void main(String[]args) Applet Une applet Java est un programme téléchargeable qui peut s'exécuter dans un navigateur.

14 Les entrées/sorties Affichage (console)

15 Les entrées/sorties Affichage (boîtes de dialogue)

16 Les entrées/sorties Saisie de données (boîtes de dialogue)

17 Les entrées/sorties Saisie de données (clavier)

18 Syntaxe de Java Reprend celle du C Le ; marque la fin d'instruction Un bloc d'instructions est délimité par {} Les identificateurs sont comme en C (if, while, switch, etc.) et utilisé tel quel Les caractères sont codés en UNICODE 16 bits au lieu de 8 : accents dans le code!

19 Types Types de données Types primitifsTypes objets String, etc... Numériques byte short int long float double boolean char types primitifs les variables contiennent des valeurs stockés sur la pile objets (instances de classes) les variables contiennent des références stockés dans le tas

20 Types JavaC, C++ boolean 1 bit8 bits char 16 bits8 bits byte 8 bits short 16 bits

21 Types Java C, C++ int 32 bits long 64 bits32 bits float 32 bits double 64 bits long double 80 bits

22 Types Java est fortement typé en C et C++: int i; short j; i = j; en Java, il faut caster: int i; short j; i = (int) j;

23 Nombre de types Java: types primitifs ou bien une classe C, C++ : types primitifs, les structures, les pointeurs,... Pas de typedef en Java

24 Constantes Le mot-clé final : java: final int entier = 0; C, C++: const int entier = 0;

25 Opérateurs arithmétiques Similaires en Java, C et C++ + : addition - : soustraction * : multiplication / : division % : modulo ++, --: incrément et décrément

26 Opérateurs relationnels = = : tester l ’égalité (référence et contenu) ! = : différent > ou >= : supérieur ou égal < ou <= : inférieur ou égal

27 Opérateurs logiques && : AND exclusif II : OR exclusif

28 Structures de contrôle Conditionnelles: If switch Boucles: Pas d’instruction goto en Java For while do while

29 abs( x ) ceil ( x ) floor (x ) round ( x ) sqrt ( x ) max ( x ) min ( x ) cos ( x ) sin ( x ) random() PI E Méthodes Constantes Elle contient les fonctions mathématiques de base. Toutes les classes sont documentées : http://java.sun.com/j2se/1.5.0/docs/api/ Une classe utile : java.lang.Math

30 Java Tableaux Chaînes de caractères Classes enveloppes (wrapper) Classe Vector

31 Tableaux Déclaration : Java: int [ ] tabEntier = new int [5]; C, C++: int tabEntier [5]; multidimensionnel: Java: double [ ] [ ] balance = new double [6] [5]; C, C++: double balance[6] [5];

32 Chaînes de caractères Deux sortes de chaînes de caractères: Les chaînes littérales ou constantes de chaînes de caractères : Ex: String couleur = "bleu" ; Et les objets de types String : Ex: String s0 = new String(.....); pour lesquels on utilise un constructeur.

33 String s0 = “bleu”; String s1 = “bleu”; String s0 = new String (“bleu”) String s1 = new String (“bleu”) bleu s0 s1 bleu s0 s1 Chaînes de caractères

34 La classe StringBuffer Constructeurs public StringBuffer( int capacity ); public StringBuffer( String s ); public StringBufffer(); Les StringBuffer, à l'inverse des String, sont manipulables. Les String ne sont pas muables. Le contenu ne peut pas être modifié. Toute opération créé une nouvelle chaîne.

35 Classes enveloppes (wrapper) Nombres entiers Nombres entiers longs Nombres décimaux Nombres décimaux en double précision Booléens Octets Caractères (Unicode) Type vide int long float double boolean byte char void Integer Long Float Double Boolean Byte Character Void

36 La classe Integer Les méthodes public int intValue(); //renvoie la valeur entière de l'objet (type int). public static int parseInt(String s); //renvoie la valeur entière de l'objet si // l'objet spécifié représente la chaîne d'un nombre entier en base 10. public static Integer valueOf(String s) //renvoie un objet Integer si la //chaîne s représente un nombre entier en base 10. Exemple Integer unInteger = new Integer(100); int d = unInteger.intValue(); La classe Integer est un wrapper. Elle fournit également des méthodes statiques.

37 La classe Vector Une liste indexée Comme un tableau d’objets mais de taille variable Accepte des instances de n’importe quel type elements() permet retourner une Enumeration, une interface qui permet de passer en revue tous les éléments de n’importe quelle collection d’objets.

38 La classe Vector Remplir un Vector Vector vect = new Vector(); for (int i=0; i>10; i++) vect.addElement("Element de type String"+i); Parcourir un Vector Avec une Enumeration Avec elementAt() for (int i=0; i>10; i++) System.out.println(vect.elementAt(i)); Enumeration enum = vect.elements(); While (enum.hasMoreElement()) System.out.println(enum.nextElement());

39 Java Packages Documentation Fichiers jar

40 Packages Un package = regroupement cohérent de classes. import java.util.*;//invoque toutes les classes du package import java.util.ArrayList; //uniquement 1 classe Pour constituer un package : L'utilisation se fait soit via import soit ainsi : Mettre toutes les classes d'un même package dans un même repertoire package mypackage; public class MyClass{...} mypackage.MyClass m = new mypackage.MyClass();

41 Packages package Cours2; public class HelloWorld { public static void main (String[] args) { System.out.println( "Bonjour !" ); } //main } //class Pour mettre une classe dans un paquet, il suffit de rajouter le mot clef “package” avant la déclaration de la classe, avant les import et le commentaire de classe.

42 Documentation Les commentaires dans le fichier.java doivent commencer par /**, finir par */ et chaque ligne doit commencer par une *.Il existe des étiquettes de champs telles que le nom d'auteur qui sont utilisées pour générer une API. Exemple : import java.util.* ; //Import ici, avant le commentaire javadoc /** * @author John Doe * @version 1.4 */ public class Bonjour2{...

43 Javadoc @see @deprecated @param @return @throws/@exception @since Balises pour les commentaires de méthodes: /** *Ceci est un commentaire javadoc. */


Télécharger ppt "Programme de baccalauréat en informatique Structures de données IFT-10541 Abder Alikacem TP4 Département d’informatique et de génie logiciel Édition septembre."

Présentations similaires


Annonces Google