1. Langage de programmation Java



Documents pareils
Introduction à JDBC. Accès aux bases de données en Java

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

Java DataBaseConnectivity

TP Programmation Java / JDBC / Oracle

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

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

Programmer en JAVA. par Tama

Java Licence Professionnelle CISII,

Langage Java. Classe de première SI

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation d application Bases de données avec Java


PROGRAMMATION PAR OBJETS

ACTIVITÉ DE PROGRAMMATION

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

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

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

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

as Architecture des Systèmes d Information

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

JDBC le langage Java XVI-1 JMF

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE JAVA

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

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

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Utilisation d objets : String et ArrayList

Accès aux bases de données

Java Licence Professionnelle CISII,

Introduction au langage C

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

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Solutions du chapitre 4

Initiation à la programmation en Python

OpenPaaS Le réseau social d'entreprise

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

Chapitre 10. Les interfaces Comparable et Comparator 1

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

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

Chapitre I Notions de base et outils de travail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

INF 321 : mémento de la syntaxe de Java

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Une introduction à Java

TP1 : Initiation à Java et Eclipse

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

JDBC JDBC. Java DataBase Connectivity

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

Gestion distribuée (par sockets) de banque en Java

Java - MySQL. Code: java-mysql

Java et les bases de données

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Corrigé des exercices sur les références

Flux de données Lecture/Ecriture Fichiers

Les chaînes de caractères

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

UE C avancé cours 1: introduction et révisions

Application web de gestion de comptes en banques

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Java Database Connectivity (JDBC) - Langage SQL

4. Groupement d objets

Claude Delannoy. 3 e édition C++

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

ALGORITHMIQUE ET PROGRAMMATION En C

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Cours d initiation à la programmation en C++ Johann Cuenin

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Définitions. Numéro à préciser. (Durée : )

TP 1. Prise en main du langage Python

Notions fondamentales du langage C# Version 1.0

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cours 1: Java et les objets

Java c est quoi? Java pourquoi?

Construire une base de donnée pour bibliothèque

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

TP1. Outils Java Eléments de correction

Introduction au langage Java

Algorithmique et Programmation, IMA

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

Chapitre 2 Devine mon nombre!

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Programme Compte bancaire (code)

TP, première séquence d exercices.

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

Traitement de données

Conventions d écriture et outils de mise au point

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

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

1/ Présentation de SQL Server :

Logiciel de gestion de caisse et d ardoises

Transcription:

1. Langage de programmation Java 1.1. Définitions Langage de 3e génération le plus utilisé actuellement Portabilité : exécutable sur tout types d'ordinateurs quel que soit le système d'exploitation (Windows, Linux, etc.) Attention, contrairement à SQL, Java est sensible à la casse : majuscules <> minuscules Terminologie JVM (Java Virtual Machine) : exécuter des programmes Java API (Application Programming Interface) : bibliothèques d'outils (graphismes, accès BD, etc.) JDK (Java Developement Kit) : créer des programmes (compilateur, générateur de documentation, etc.) EDI (Environnement de Développement Intégré) : logiciel pour écrire, compiler et exécuter les programmes Classe : programme Java Création d'un programme 1. Écriture du code source : fichier.java 2. Compilation du code source : commande javac Génère une erreur (exception) si le programme est incorrect Sinon génère le fichier.class 3. Exécution : commande java 1.2. Instructions Opérations élémentaires (affichage, addition, etc.) Ex : afficher à l'écran le message "Hello world!" class Hello Nom du programme Début public static void main(string[] args) Fonction principale System.out.println("Hello world!"); Instructioh Fin 1.3. Commentaires Permettent d'expliciter les opérations d'un programme Commentaire sur plusieurs lignes : /* commentaire */ Commentaire de fin de ligne : // commentaire 1.4. Variables Permettent de stocker en mémoire des valeurs (nombres, textes, etc.) Identifiées par leur nom (lettres, chiffre ou "_") qui doit être unique dans le programme Opérations Déclaration (définition d'une variable) : type nom; Affectation (mettre une valeur dans la variable) : nom = valeur; Initialisation (première affectation d'une valeur) : obligatoire avant 1ère utilisation Types byte : entier [-128; 127] short : entier [-32 768; 32 767] int : entier [-2 147 483 648; 2 147 483 647] long : entier [-9 223 372 036 854 775 808; 9 223 372 036 854 775 807] float : décimal [-1.40239846 x10-45 ; 3.40282347 x10 38 ] double : décimal [4.9406564584124654 x10-324 ; 1.797693134862316 x10 308 ] 1/10

boolean : true/false char : un caractère (lettre, chiffre, symbole) String : chaîne de caractères => Attention : le séparateur décimal est le. Exemple : class TireLire 1.5. Calculs Opérateurs arithmétiques : Addition : + Soustraction : - Multiplication : * Division : / Reste de la division entière : % (ex : int l = 5 % 2; l contient 1) => Résultat d'une opération arithmétique : du même type que celui de son opérande le plus précis Opérandes de type int : résultat de type int (division entière) Ex : double n = 1 / 2; n contient 0.0 Opérandes de types double et int : résultat de type double Ex : double m = 1.0 / 2; m contient 0.5 double p = 1 / 2.0; p contient 0.5 Une variable peut être utilisée pour modifier sa propre valeur Ex : n = n + 1; incrémente n de 1 <=> n++; n = n - 1; décrémente n de 1 <=> n--; Forçage de type Changement du type d'une valeur Ex : int q = (int) 10.0 / 3; q contient 3 double r = (double) 10 / 3; r contient 3.3333 1.6. Chaînes de caractères Suite de caractères (chiffres, lettres, symboles) numérotés de 0 à longueur-1 Ex : String nom = "Dupond"; Indice : 0 1 2 3 4 5 Peut être vide : String st = ""; ou String st = null; Fonctions Longueur de la chaîne : int l = nom.length(); l contient 6 Extraire un caractère : char c = nom.charat(0); c contient 'D' Extraire une sous-chaîne : String s = nom.substring(0,2); s contient "Du" Mettre en majuscules : String m = nom.touppercase(); m contient "DUPOND" Mettre en minuscules : String n = nom.tolowercase(); n contient "dupond" Combinaison des fonctions : String p = nom.substring(0,2).touppercase(); p contient 'DU' System.out.println(nom.substring(0,2).toUpperCase()); affiche 'DU' Conversion en nombre La chaîne doit contenir une valeur numérique adaptée Ex : String s1 = "1", s2 = "2.22"; int i = Integer.parseInt(s1); i contient 1 double d = Double.parseDouble(s1); d contient 1.0 int i = Integer.parseInt(s2); génère une erreur double d = Double.parseDouble(s2); d contient 2.22 2/10

1.7. Saisies de valeurs Entrée au clavier de valeurs par l'utilisateur : 1. Utiliser la bibliothèque standard java.util.scanner : import java.util.scanner; 2. Initialiser le lecteur au clavier : Scanner sc = new Scanner(System.in); 3. Réaliser les lecture selon le type de données Types byte : nextbyte() short : nextshort() int : nextint() long : nextlong() float : nextfloat() double : nextdouble() boolean : nextboolean() String : nextline() char : lire une chaîne (fonction nextline()) et extraire le 1er caractère (fonction charat(0)) Exemple : class Saisies 1.8. Affichage Permet d'afficher des informations (texte, variables, résultats de calculs, etc.) à l'écran Instructions System.out.println(...) : aller à la ligne après affichage System.out.print(...) : sans aller à la ligne Caractères spéciaux \n : aller à la ligne \t : tabulation \\ : caractère \ \" : caractère " Exemple : class Poeme 2. Tests Permettent d'exécuter un calcul (suite d'instructions) si une condition est vérifiée 2.1. Instructions if else if (test1) Instructions exécutées si test1 est vrai else if (test2) Instructions exécutées si test2 est vrai else Instructions exécutées si aucun test précédent n'est vrai 2.2. Comparaison de nombres et caractères (uniques) Égalité : == 3/10

Supérieur : > Supérieur ou égal : >= Inférieur : < Inférieur ou égal : <= Différent :!= Ex : if (v1 == v2) vrai si v1 et v2 sont égales if (v1!= v2) vrai si v1 et v2 sont différentes Exemple : class EvaluationNote 2.3. Comparaison de chaînes de caractères Ordre lexicographique : caractères de gauche à droite comparé un à un selon l'ordre alphabétique étendu, i.e. espace < chiffres < majuscules < minuscules < caractères spéciaux (accentués, symboles, etc.) Ex : "Dupond" est avant "Dupont" "Dupond" est avant "dupond" "Dupon" est avant "Dupond" Opérateurs Test égalité : if (ch1.equals(ch2)) Test général : int res = ch1.compareto(ch2); res = 0 si ch1 est égale à ch2 res < 0 si ch1 est avant ch2 dans l'ordre lexicographique res > 0 si ch1 est après ch2 dans l'ordre lexicographique Exemple : class OrdreLexicographique 2.4. Conjonctions et disjonctions Combinaisons de plusieurs tests Conjonctions (et logique) : && Disjonctions (ou logique) : Ex : if (test1 && test2) vrai si test1 et test2 sont vrais if (test1 test2) vrai si test1 ou test2 sont vrais if (test1 && test2 test3) vrai si (test1 && test2) ou (test1 && test3) est vrai if (test1 test2 && test3) vrai si (test1) ou (test2 && test3) est vrai Exemple : class ConjonctionsDisjonctions 2.5. Négation Opérateur :! Ex : if (!n >= 0) <=> if (n < 0) if (!(n >= 0 && n <= 20)) <=> if (n < 0 n > 20) if (!(n < 8 n >= 10)) <=> if (n >= 8 && n < 10) 2.6. Switch Tests successifs d'une variable de type int switch(variable) case valeur1: break; case valeur2: break; default: Instructions exécutées si variable == valeur1 Pour éviter que les cas suivants soient testés Instructions exécutées si aucun des cas précédents n'est vérifié 4/10

Exemple : class SwitchCase 3. Boucles Permettent de répéter un calcul plusieurs fois, tant qu'une condition d'exécution est vérifiée Itération : une exécution du calcul 3.1. For Utilisé si on sais à l'avance combien d'itérations doivent être réalisées Format for (initialisation; condition; incrémentation) instruction(s); Définition : initialisation : défini la valeur initiale de l'indice de boucle (variable de type int compteur d'itérations) condition : test portant sur l'indice effectué avant chaque itération pour déterminer si la boucle continue ou non incrémentation : modification de l'indice en fin de chaque itération (ex : +1, -1) Ex : parcours des caractères d'une chaîne (longueur connue) nom Initialisation de l'indice de boucle (i) Condition d'exécution Pas de la boucle (+1) for (int i = 0; i < nom.length; i++) Instructions exécutées lors de chaque itération Exemple : class ParcoursChaine, Factorielle, Palindrome 3.2. While Utilisé si on ne sais pas à l'avance combien d'itérations doivent être réalisées Format while (condition) nom : A d a m nom.length = 4 instruction(s); => Variable testée dans la condition doit être modifiée (calcul, saisie, etc.) dans la boucle sinon boucle infinie Ex : répétition tant que l'utilisateur le désire, répétition de saisie tant que valeur non valide while (valeur < 0)... i : Exemple : class VerificationSaisie 3.3. Do while 0 1 2 3 Condition d'exécution de la boucle Réalise une itération avant de tester la condition d'exécution Instructions exécutées tant que la valeur saisie est négative 5/10

Format do instruction(s); while (condition); Exemple : class ControleExecution 4. Tableaux Permettent de stocker en mémoire plusieurs valeurs du même type Le nombre de cases et le type sont fixés lors de la déclaration 4.1. Opérations Déclaration : type[] nom = new type[taille]; Ex : int[] tab = new int[5]; tableau de 5 nombres entiers tab : Indice : 0 1 2 3 4 Affectation d'une valeur dans une case : nom[indice] = valeur; Ex : tab[0] = 2; la 1ère case contient 2 Accès à une valeur : nom[indice] Ex : System.out.println(tab[0]); affiche le contenu de la 1ere case Initialisation globale lors de la déclaration Ex : int[] nbrpremiers = 1,2,3,5,7,11,13,17,19,23; String[] semaine = "lundi","mardi","mercredi","jeudi", "vendredi","samedi","dimanche"; Parcourir le tableau : boucle for dont l'indice varie de 0 à nom.length (valeur et non fonction) Ex : for (int i = 0; i < tab.length; i++) Instructions exécutées pour chaque case tab[i] Ex : System.out.println(tab[i]); affichage Exemple : class ParcoursTableau, Poeme 4.2. Tableaux à plusieurs dimensions Tableaux de tableaux Deux dimensions : matrice Ex : int[][] tab = new int[2][5]; 2 lignes et 5 colonnes Parcours par boucles for imbriquées : tab.length : nombre de lignes tab[i].length : longueur de la ième ligne (nbr colonnes) Ex : for (int i = 0; i < tab.length; i++) Boucle pour chaque ligne tab[i] for (int j = 0; j < tab[i].length; j++) Boucle pour chaque case tab[i][j] Instructions exécutées pour chaque case tab[i][j] Ex : System.out.println(tab[i][j]); affichage Exemple : class TableMultiplication, DemiMatrice 5. Fonctions Permettent de décomposer une tâche en plusieurs sous-tâches 6/10

Signature : défini nom et méthode d'utilisation de la fonction Format type_retour nom(liste_paramètres) instruction(s); Définition : nom : nom utilisé pour appeler la fonction (i.e. l'exécuter) liste_paramètres : données fournies à la fonction (arguments) Aucun paramètre : liste vide type_retour : type de valeur (ou tableau) renvoyée par la fonction Aucun retour void Valeur renvoyée par l'instruction : return(valeur); Ex : int factorielle(int nbr) int fact = 1; for (int i=1; i<=nbr; i++) fact = fact * i; return(fact); Exemple : class ConversionsCmPouces, FonctionsTableau 6. Bibliothèques Contiennent des outils (fonctions et valeurs) déjà définis Regroupés dans un API identifié oar un numéro de version (actuellement version 7) Leur contenu est décrit sur : http://www.oracle.com/technetwork/java/index.html Liste des bibliothèques Liste des classes de la bibliothèque sélectionnée ou standard Description de la classe sélectionnée (valeurs et fonctions) 6.1. Bibliothèque standard java.lang Importée par défaut Défini les bases du langage Exemples : classe Math valeurs Math.PI : valeur de Π, Math.E : base des logarithmes naturels fonctions Math.sqrt(x) : racine carrée de x, Math.pow(x,y) : calcule x y, etc. 6.2. Autres bibliothèques Doivent être importées par un import Exemples : java.util : utilitaires 7/10

classe Scanner : saisies classe Date : dates etc. java.io : entrées/sorties fichiers java.sql : accès bases de données 6.3. Exceptions Exception : erreur survenant durant l'exécution Certaines exceptions doivent impérativement être gérées Ex : IOException, SQLException Toutes les exceptions sont regroupées dans la classe Exception (permet un traitement général) Traitements spécifiques try instruction(s) pouvant générer des exceptions catch(typeexception e) instruction(s) traitant l'exeption e Un bloc catch() pour chaque type d'exceptions traité Ignorer des exceptions Déclarées lors de la définition de la fonction type_retour nom(liste_paramètres) throws liste_typeexception instruction(s); Exemple : class BibliothequeDates, CopieCaracteres, CopieLignes 7. JDBC Java DataBase Connectivity : outils de manipulation de bases de données Processus : 1. Importer la bibliothèque java.sql : import java.sql.*; 2. Charger en mémoire la classe du driver (dépend du SGBD) : BD MySQL : Class.forName ("com.mysql.jdbc.driver"); BD Oracle : Class.forName("oracle.jdbc.driver.OracleDriver"); JDBC-ODBC : Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Peut générer une ClassNotFoundException 3. Ouvrir une connexion : Connection conn = DriverManager.getConnection(url, "user", "password"); Peut générer une SQLException 4. Créer l'instruction SQL : Requête non-paramétrée : Statement Requête paramétrée : PreparedStatement Requête stockée : CallableStatement 5. Lancer leur exécution : Requête de sélection : executequery() Requête de modification : executeupdate() 8/10

Requête indéterminée : execute() 6. Utiliser les résultats Requête de sélection : boucle de parcours des lignes renvoyées Requête de modification : nombre de lignes modifiées Requête indéterminée : tester le type de résultats 7. Fermer la requête et la connexion : close() 7.1. Requêtes de sélection Procédure Créer un objet ResultSet pour récupérer les résultats de la requête Créer un objet Statement obtenu à partir de l'objet Connection Faire un appel à executequery() avec la requête en paramètre executequery() renvoie un ResultSet contenant les lignes sélectionnées Créer une boucle parcourant chaque ligne du ResultSet Afficher chaque colonne de la ligne par un getxxx(int numcolonne) ordre des colonnes connus getxxx(string nomcolonne) ordre inconnu où XXX correspond au type de valeur récupérée (int, double, String, etc.). Principaux types INTEGER et INT : int getint(...) REAL : float getfloat(...) DOUBLE et FLOAT : double getdouble(...) DECIMAL et NUMERIC : BigDecimal getbigdecimal(...) CHAR et VARCHAR : String getstring(...) BINARY et VARBINARY : byte getbytes(...) BOOLEAN : boolean getboolean(...) DATE : java.sql.date getdate(...) TIME : java.sql.time gettime(...) Général : utiliser Sting getstring(...) Exemple : class SelectSimple 7.2. Requêtes de modification Procédure Créer une variable de type int pour récupérer le retour de la requête Créer un objet Statement obtenu à partir de l'objet Connection Faire un appel à executeupdate() avec la requête en paramètre executeupdate() renvoie un nombre entier indiquant le nombre de lignes modifiées (0 sinon) Afficher le nombre renvoyé (requêtes de modification de lignes) Exemple : class ModificationSimple 7.3. Requêtes paramétrées Procédure Créer un objet PreparedStatement en utilisant le joker? pour définir les valeurs paramétrées Utiliser les méthodes setxxx() pour définir les valeurs des jokers Faire un appel à executequery(), executeupdate() ou execute() selon le type de requête Afficher le retour (ResultSet ou nombre de lignes modifiées) Principaux types INTEGER et INT : setint(int numjoker, int x) 9/10

DOUBLE et FLOAT : setdouble(int numjoker, double x) REAL : setfloat(int numjoker, float x) DECIMAL et NUMERIC : setbigdecimal(int numjoker, BigDecimal x) CHAR et VARCHAR : setstring(int numjoker, String x) BINARY et VARBINARY : setbytes(int numjoker, byte[] x) BOOLEAN : getboolean(int numjoker, boolean) DATE : setdate(int numjoker, java.sql.date x) TIME : settime(int numjoker, java.sql.time x) Valeur NULL : setnull(int numjoker, java.sql.types T) ou T est le nom du type SQL (INTEGER, VARCHAR, etc.) numjoker : numéro du joker? à remplacer dans le texte de la requête (1er 1, 2ème 2, etc.) Exemple : SelectParametre, ModificationParametree, SelectAbonnesEmprunts 8. Références Sites Internet : http://java.developpez.com/ http://www.commentcamarche.net/contents/java/ http://www.siteduzero.com/tutoriel-2-178-java.html Livres : Programmer en Java (7e édition), Claude Delannoy, Eyrolles, 2010 Apprenez à programmer en Java, Cyrille Herby, Simple IT, 2011 Aide-mémoire de Java (3e édition), Vincent Granet et Jean-Pierre Regourd, Dunod, 2011 10/10