JAVA Première approche



Documents pareils
INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre I Notions de base et outils de travail

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

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

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

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

as Architecture des Systèmes d Information

Annexe : La Programmation Informatique

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

Cours 1: Java et les objets

Programmation Orientée Objet

Java Licence Professionnelle CISII,

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

Initiation à JAVA et à la programmation objet.

ACTIVITÉ DE PROGRAMMATION

TP1 : Initiation à Java et Eclipse

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

Java c est quoi? Java pourquoi?

Vulgarisation Java EE Java EE, c est quoi?

Langage Java. Classe de première SI

La technologie Java Card TM

Programmation Objet Java Correction

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programmer en JAVA. par Tama

Apprendre Java en 154 minutes

PROGRAMMATION PAR OBJETS

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

INITIATION AU LANGAGE JAVA

Bases Java - Eclipse / Netbeans

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

Java Licence Professionnelle CISII,

TD3: tableaux avancées, première classe et chaînes

Une introduction à Java

Projet de Veille Technologique

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Machines Virtuelles. et bazard autour. Rémi Forax

Programmation Orientée Objets Le Langage JAVA

Solutions du chapitre 4

Programmeur Java 1.4 et 5.0

Java et les bases de données

TP, première séquence d exercices.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Utilisation d objets : String et ArrayList

Introduction à Java. Philippe Genoud.

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

TP1. Outils Java Eléments de correction

Derrière toi Une machine virtuelle!

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Eclipse atelier Java

Java - la plateforme

Éléments de programmation et introduction à Java

Flux de données Lecture/Ecriture Fichiers

Cours 1 : Qu est-ce que la programmation?

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

Environnements de développement (intégrés)

Tp 1 correction. Structures de données (IF2)

La carte à puce. Jean-Philippe Babau

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

Java DataBaseConnectivity

java : Langage et Environnement

Introduction au langage Java

Programmation Web. Madalina Croitoru IUT Montpellier

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

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Auto-évaluation Programmation en Java

Programmation C++ (débutant)/instructions for, while et do...while

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Traitement de données

Introduction au langage C

Architecture Orientée Service, JSON et API REST

Systeme d'exploitation

Java pour le Web. Cours Java - F. Michel

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

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

Les structures. Chapitre 3

SGDN. Projet: JAVASEC

CIE303 - Programmation Orientée Objet en Java

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

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Java Licence professionnelle CISII,

RMI le langage Java XII-1 JMF

COMPARAISONDESLANGAGESC, C++, JAVA ET

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Installation et prise en main

TP1 : Initiation à Java et Eclipse

Intergiciel - concepts de base

La JVM. La machine virtuelle Java. La JVM. La JVM

Évaluation et implémentation des langages

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

TP 1. Prise en main du langage Python

Présentation de Java. Olivier de Pertat IT GROUP

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Projet de programmation (IK3) : TP n 1 Correction

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

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

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

Transcription:

Année 2008-2009 JAVA Première approche Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1

Qu'est ce que Java? C'est le nom d'une technologie mise au point par Sun Microsystem constituée : du langage Java qui est un langage de programmation orienté objet et fortement typé utilisant des mécanismes d'héritages simples, d'interfaces et de polymorphismes du JRE (Java Runtime Environment) regroupant la JVM (Java Virtual Machine) qui interprète le code Java et le convertit en code natif les APIs (Application Program Interface) : ensembles de bibliothèques standards du JDK (Java Development Kit) regroupant le compilateur Java le débogueur Java logo Java Licence GNU GPL Le Javascript ( développé par Netscape, Inc.) n'a rien à voir avec le Java. 2

Pourquoi apprendre Java? De par son évolutivité, son ecacité, la portabilité de sa plate-forme et sa sécurité, la technologie Java est devenue la solution idéale pour l'informatique de réseau. Java équipe plus de 4,5 milliards de périphériques, notamment : 800 millions de PC 1,5 milliards de téléphones portables et autres périphériques de poche (source : Ovum) 2,2 milliards de cartes à puce Des décodeurs, des imprimantes, des webcams, des jeux, des systèmes de navigation automobile, des terminaux de loterie, des appareils médicaux, des bornes de paiement de parking, etc. www.java.com 3

Pourquoi les développeurs de logiciels ont choisi Java? Sa exibilité, son ecacité et sa portabilité font de Java un outil indispensable, qui permet aux développeurs : d'écrire des logiciels sur une plate-forme et de les exécuter sur pratiquement toutes les autres plates-formes, de créer des programmes à exécuter dans un navigateur Web et dans des services Web : ces programmes sont appelés des applets de développer des applications serveur pour des forums, des magasins et des sondages en ligne, pour le traitement de formulaires HTML, et plus encore, de combiner des applications ou des services basés sur Java pour créer des applications ou services très personnalisés, d'écrire des applications puissantes et ecaces pour les téléphones portables, les processeurs à distance et tous les autres types de périphériques dotés d'un signal numérique. 4 www.java.com

Avantages du Java sur le C++ Peu de concepts à assimiler : Il n'y a que des classes (pas de struct, enum, union) Il n'y a que des références (pas de pointeurs) Pas besoin de gérer la mémoire grâce au garbage collector Java est indépendant de la plate-forme utilisée Java gère nativement les threads 5

Historique de Java Java 1.3 (kestrel) Java 1.4 (merlin) Java 1.5 (tiger) Java 1.6 (mustang) Java 1.02 lent 250 classes applets Java 1.1 très répendu 500 classes interfaces graphiques, JDBC, RMI Java 2 beaucoup plus rapide, 2300 classes applications web, (J2SE 1.2 à 1.4) puissant applications mobiles API swing, Image I/O, parseur XML, JCE Java 5.0 plus puissant, 3500 classes énumérations, VarArgs (J2SE 1.5) plus facile Depuis 2006, il existe la version Java SE 6. Une version Java SE 7 est prévue pour 2009. 6

Comment fonctionne Java? 1 Créez un document source en utilisant un protocole établi : le Java 2 Passez votre document dans un compilateur de code source Java. Tant que votre chier contiendra des erreurs, le compilateur refusera de compiler. 3 Une fois que le compilateur est sûr que tout fonctionnera correctement, il crée un nouveau document codé en bytecode Java. C'est ce document qui va être exécuté par la JVM. 4 La JVM est un logiciel installé sur de nombreuses plate-formes. Elle traduit votre bytecode en quelque chose de compréhensible par la plate-forme sous-jacente. Votre bytecode est donc indépendant de la plate-forme utilisée! 7

Ce que vous allez faire 1 Créez un chier source et l'enregistrez sous : Chien.java public class Chien { void aboyer (){ int x = 0; 2 Compilez votre chier source : javac Chien.java Vous devriez obtenir un chier bytecode nommé : Chien.class Method Chien () 0 aload_0 Methode Aboyer () 0 new #2 <int > 3 dup 3 Lancez votre programme dans la JVM : java Chien.class 8

Parlez-vous le Java? int taille = 27; String nom = " Fido "; Chien monchien = new Chien ( nom, taille ); int x = taille - 5; if ( x < 15) monchien. aboyer (8); int [] listenombres = {1, 3, 4, 6; System. out. print (" Bonjour " ); System. out. print (" nom du chien : " + nom ); 9

Structure du code source en Java Un chier source Java contient une classe. Une classe contient des attributs et des méthodes. Une méthode contient des intructions. Exemple : public class Chien { // début de la classe " Chien " String nom = " Fido "; // attribut void aboyer (){ // début de la méthode " aboyer " int x = 0; // instruction 1 x = x +1; // instruction 2 // fin de la méthode " aboyer " // fin de la classe " Chien " 10

Classes Un chier source (avec extension.java) contient une classe. La classe représente en général une portion de votre programme seulement. Une classe est introduite par le mot clé class et est délimitée par deux accolades. public class Chien { // début de la classe " Chien " // ici se trouvent les définitions des différentes // méthodes de la classe Chien // fin de la classe " Chien " public signie que tout le monde peut accéder à cette classe class signie que nous sommes en train de dénir une classe Chien est le nom de la classe 11

Méthodes Une classe contient une ou plusieurs méthodes. Une méthode décrit un comportement de votre classe. Elle est aussi délimitée par deux accolades. public class Chien { void aboyer ( int nb_fois ){ // début de la méthode // ici se trouve une suite d ' instructions // de conditions et de boucles // fin de la méthode " aboyer " void type de retour. Void signie pas de valeur de retour public signie que tout le monde peut accéder à cette méthode (int nb_fois) signie que la méthode utilise un argument de type entier 12

Instructions Une méthode contient une liste d'instructions (déclarations, aectations, appels de méthodes,...) public class Chien { void aboyer ( int nb_fois ){ int x; // déclaration x = nb_fois ; // affectation System. out. print ("x vaut 0" ); // appel de méthodes System. out. println (" ouaf!" ); // appel de méthodes x = x - 1; // affectation 13

Conditions Une méthode contient une liste d'instructions, des conditions public class Chien { (if/else) void aboyer ( int nb_fois ){ int x; x = nb_fois ; if ( x == 0 ) { // instructions si x vaut 0 System. out. print ("x vaut 0" ); else { // instructions si x ne vaut pas 0 System. out. println (" ouaf!" ); x = x - 1; // fin else 14

Boucles Une méthode contient une liste d'instructions, des conditions et des boucles (for, while et do-while) public class Chien { void aboyer ( int nb_fois ){ int x; x = nb_fois ; if ( x == 0 ) { System. out. print ("x vaut 0" ); else { while ( x > 0 ){ // tant que x est positif, // répeter les instructions suivantes System. out. println (" ouaf!" ); x = x - 1; // fin des instructions à répéter 15

La méthode main Lorsque vous essayez d'exécuter votre bytecode (ex : java Chien.class), la JVM doit savoir où commencer l'exécution de votre bytecode. Pour cela il faut dénir dans votre classe une méthode spéciale, appelée main, qui ressemble à class Chien {... public static void main ( String [] args ){ // votre code va commencer par s ' exécuter ici.... La JVM exécute tout ce qui se trouve entre les accolades de la méthode main(). Toute application Java contient donc au moins une classe et au moins une méthode main(). Faut-il mettre une méthode main() dans chaque classe? 16

Notre premier petit programme public class Chien { OUAF! OUAF! OUAF! void aboyer ( int nb_fois ){ int x; x = nb_fois ; if ( x == 0 ) { System. out. print ("x vaut 0" ); else { while ( x > 0 ){ System. out. println (" ouaf!" ); x = x - 1; public static void main ( String [] args ){ aboyer (3); 17

Un autre exemple public class Boucle { public static void main ( String [] args ){ int x = 1; System. out. println (" Début de la boucle " ); while ( x < 4 ) { System. out. println (" Dans la boucle " ); System. out. println (" La valeur de x est : " + x ); x = x + 1; System. out. println (" fin de la boucle " ); Quel est le résultat de ce programme? 18

Encore un autre exemple public class TestIf { public static void main ( String [] args ){ int x = 1; if ( x == 1 ) { System. out. println (" La valeur de x est 1" ); System. out. println (" fin " ); Quel est le résultat de ce programme? 19

Encore encore un autre exemple public class TestIf { public static void main ( String [] args ){ int x = 2; if ( x == 1 ) { System. out. println (" La valeur de x est 1" ); else { System. out. println ("x ne vaut pas 1" ); System. out. println (" fin " ); Quel est le résultat de ce programme? 20

Quelques questions Par quoi se termine toujours une instruction? Qu'est-ce qu'un bloc de données? Quelle est la diérence entre == et =? Quelle est la diérence entre System.out.print et System.out.println? Avons-nous le droit d'écrire le morceau de code suivant à la C?... int x = 1; while ( x ) {...... 21

Le programme du bistro d'en face... public class SongForABeer { public static void main ( String [] args ){ int nbbiere = 33; String mot = " bouteilles "; while ( nbbiere > 0){ if ( nbbiere == 1) { mot = " bouteille "; System. out. println ( nbbiere + mot + " de biere " ); System. out. println (" je la prends " ); System. out. println (" je la bois " ); System. out. println (" je la jette " ); System. out. print (" Combien reste -t - il ") System. out. println (" de bouteilles de biere?" ); System. out. println ("Y -a plus de bouteilles!" ); 22

Un programme générateur de phrases public class GenerateurDePhrase { public static void main ( String [] args ){ String [] listeun = {" etudiant (e)"," enseignant (e)" ; String [] listedeux = {" premiere "," deuxieme " ; String [] listetrois = {" biomed "," info "," internet " ; int lg1 = listeun. length ; int lg2 = listedeux. length ; int lg3 = listetrois. length ; int r1 = ( int ) ( Math. random () * lg1 ); int r2 = ( int ) ( Math. random () * lg2 ); int r3 = ( int ) ( Math. random () * lg3 ); String phrase = listeun [ r1 ] + " en " + listedeux [ r2 ] + " année de " + listetrois [ r3 ]; System. out. println (" Je suis un (e) " + phrase ); 23

Qu'avons-nous vu jusqu'ici? écrire une classe simple avec une fonction main écrire des instructions, des conditions et des boucles en Java déclarer une variable entière, une variable chaîne de caractères acher du texte et des variables générer un nombre aléatoire créer un tableau de chaînes de caractères concaténer des chaînes de caractères 24