Programmation en Java IUT GEII (MC-II1) 1



Documents pareils
as Architecture des Systèmes d Information

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

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

Programmer en JAVA. par Tama

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

Cours 1: Java et les objets

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

Programmation par les Objets en Java

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII,

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

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

Java Licence Professionnelle CISII,

Java c est quoi? Java pourquoi?

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

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

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

2. Comprendre les définitions de classes

INF 321 : mémento de la syntaxe de Java

Notions fondamentales du langage C# Version 1.0

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

Langage Java. Classe de première SI

Introduction au langage C

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

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

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

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

Package Java.util Classe générique

Une introduction à Java

INITIATION AU LANGAGE JAVA

Projet de programmation (IK3) : TP n 1 Correction

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

TP1 : Initiation à Java et Eclipse

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

Objets et Programmation. origine des langages orientés-objet

4. Groupement d objets

Apprendre Java en 154 minutes

Programme Compte bancaire (code)

Corrigé des exercices sur les références


Cours d Algorithmique et de Langage C v 3.0

Premiers Pas en Programmation Objet : les Classes et les Objets

Utilisation d objets : String et ArrayList

Programmation Orientée Objet Java

Programmation Web. Madalina Croitoru IUT Montpellier

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

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Claude Delannoy. 3 e édition C++

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

Chapitre VI- La validation de la composition.

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

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

Structurer ses données : les tableaux. Introduction à la programmation

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

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Bases de programmation. Cours 5. Structurer les données

Initiation à JAVA et à la programmation objet.

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Algorithmique et Programmation, IMA

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

La technologie Java Card TM

Traduction des Langages : Le Compilateur Micro Java

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction à l algorithmique et à la programmation M1102 CM n 3

Programmation Objet I

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ALGORITHMIQUE ET PROGRAMMATION En C

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

Bases Java - Eclipse / Netbeans

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

Programmation C. Apprendre à développer des programmes simples dans le langage C

TP1. Outils Java Eléments de correction

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

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Informatique Générale

Programmation Orientée Objets Le Langage JAVA

Introduction au langage Java

La carte à puce. Jean-Philippe Babau

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Évaluation et implémentation des langages

Java et les bases de données

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Programmation Orientée Objet application au langage Java Version Novembre 2007

Programmation MacOSX / ios

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

TP : Gestion d une image au format PGM

Auto-évaluation Programmation en Java

OCL - Object Constraint Language

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)

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Utiliser Java sans BlueJ

Exercices sur les interfaces

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

Transcription:

Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 1

Rappels généraux java : définition 1 n.f. 1922 ; arg. faire la java (1901), «danser en remuant les épaules» ; o.i. Danse de bal musette à trois temps, assez rapide Air, musique qui l accompagne. Loc. Fam. Faire la java, faire la foire. V. noce, nouba. 2 Ile volcanique, Indonésie, longue de 1000 km et large de 190 km au max., s allongeant d O. en E. entre les îles de Sumatra et de Bali. 3 Mot sujet à nombre jeux de mots. Java Swinguer, Java jaser ou Java bien en sont des exemples. 4 Langage de programmation orientée objet créé par Sun en 1994. Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 2

Rappels généraux Le JDK 1.4 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 3

Rappels généraux Un langage compilé/interprété Compilation d un programme Java : Le byte code est : (matériel + OS) Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 4

Rappels généraux Exécution d un programme Java compilé Le byte code assure la portabilité des programmes Java : langage d une Machine Virtuelle à l exécution un simule cette machine virtuelle Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 5

Rappels généraux Langages concurrents Internet C++ (et sa machine virtuelle ICVM, Open Source) : http ://www. xmission. com/ icvm/ le C# (Microsoft C-Sharp) : http ://www. csharpindex. com/ using System ; cl a s s Welcome { s t a t i c void Main () { Console. WriteLine ("Welcome to csharpindex.com" ) ; } } cf. comparatif http ://www.25 hoursaday. com/csharpvsjava. html C++, Objective-C, Smalltalk, Eiffel, perl Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 6

Rappels généraux Notre outil de développement : BlueJ environnement de programmation et de développement Java (spécialement conçu pour l enseignement) (Université de Monash, Melbourne, Australie); permet d éditer, de compiler et d exécuter du code Java; permet de créer et d interagir directement sur les objets (appel des méthodes associées, inspection d objets, etc.) ; utilise un sous-ensemble très restreint du langage UML (Unified Modeling Language). Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 7

Rappels généraux L environnement BlueJ Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 8

Les notions importantes de la programmation orientée objet Les structures de contrôle (idem C) ( if, else, switch, for, do, while) supposées connues. Retour sur les mécanismes de déclaration de : ; ;. Retour sur les notions de : ; ;. Insister sur les notions de : ; ;. un fil conducteur : l exemple des coordonnées d un point (cartésiennes, polaires, GPS) Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 9

Le problème à traiter Des coordonnées... Fig.: Coordonnées cartésiennes et polaires Fig.: Coordonnées GPS Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 10

Objectifs vers la simulation logicielle d un système de positionnement d un point positionne notions d héritage (de classe et d interface), d abstraction et de factorisation; à partir du système de positionnement créer un GPS et construire son interface graphique ; structure d une interface graphique en Java (le modèle MVC). Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 11

Classe Une classe est constituée de : : que l on nomme : que l on nomme Une classe est un modèle de définition pour des objets : ayant même (même ensemble d attributs); ayant même (même méthodes); ayant une commune. Les objets sont des représentations ( ), «vivantes» du modèle défini pour eux par la classe. une classe permet plusieurs objets; chaque objet est une d une ( ) classe. Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 12

Classe : notation UML (1) Unified Modeling Language NomDeLaClasse - attributprivate : byte # attributprotected : int + attributpublic : double + NomDeLaClasse ( ) // constructeur + NomDeLaClasse (paramconstructeur : int) - methodeprivate ( ) : String # methodeprotected (param : String) + methodepublic ( ) : void Rmq : Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 13

Classe : notation UML (2) Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 14

Classe : Point Attributs PointCartesien - - plus tard ici des méthodes Objectif : définir l état de l objet attributs ou de l objet (ici X,Y) à un moment particulier de type ou de type Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 15

Les types primitifs (1/2) Syntaxe Type Valeur codée sur byte entier 8 bits, de 2 7 à 2 7 1 short entier 16 bits, de 2 15 à 2 15 1 int entier 32 bits, de 2 31 à 2 31 1 long entier 64 bits, de 2 63 à 2 63 1 float réel simple précision 32 bits, norme IEEE 754-1985 double réel double précision 64 bits, norme IEEE 754-1985 Tab.: Les types primitifs numériques La norme IEEE 754-1985 correspond à des valeurs de la forme ±m 2e, dans laquelle : m est un entier positif inférieur à 2 24 et e est un entier de 149 à 104, pour le type float ; m est un entier positif inférieur à 2 53 et e est un entier de 1045 à 1000, pour le type double Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 16

Les types primitifs (2/2) Le type primitif char correspond à des caractères codés en Unicode sur 16 bits. L Unicode constitue un sur-ensemble du code ASCII. peut être considéré comme un entier non négatif de 0 à 65535 = 2 16 1 Rappel : ASCII (7 bits); ISO Latin-1 (8 bits); pour coder valeur Unicode qui n est pas ISO Latin-1 \u06f1 chiffre 1 pour le sous-ensemble arabe oriental d Unicode. Le type primitif boolean rassemble les deux constantes logiques true et false; type indépendant des types numériques. Plus possible, comme en C ou C++, d exprimer l équivalence «zéro false»et «entier positif true». Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 17

Classe : PointCartesien Attributs : Codage en Java / Classe PointCartesien @author IUT 09 GEII @version 2009 2010 / //LA DECLARATIOND UNE CLASSE EN JAVA SE FAIT PAR LE MOT CLE class public class PointCartesien { //DEBUT DU BLOC DE DECLARATION DE LA CLASSE //DECLARATIONS DES ATTRIBUTS DE LA CLASSE CompteurSimple //rmq : faire debuter le commentaire par / permet de generer //ensuite une doc HTML grace aux outils adequats / X,Y sont codes par des reels et initialises a zero / private double X = 0; private double Y = 0; //... }//FIN DUBLOC DE DECLARATIONDE LA CLASSE Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 18

Classe : PointCartesien Méthodes Objectif fournir des méthodes qui permettent de objet de objet d un d un PointCartesien - X : double - Y : double pour l instant on passe cette partie + + + Rmq : On trouve fréquemment des préfixés par set (get). Ces méthodes appelées de l état d un attribut de l objet instancié à partir de la classe. Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 19

Classe : PointCartesien Méthodes : Codage en Java public class PointCartesien { //DECLARATIONS DES ATTRIBUTS DE LA CLASSE PointCartesien //rmq : faire debuter le commentaire par / permet de generer //ensuite une doc HTML grace aux outils adequats / X,Y sont codes par un reel et initialises a zero / private double X = 0; private double Y = 0; //DECLARATIONS DESMETHODESDE LA CLASSE PointCartesien //cette methode est ce que l on nomme un accesseur //elle permet de connaitre l etat courant du point / @return les coordonnées du point / public double getx() { return this.x; } } / afficher X / public void afficher () { System.out. println("x : "+this.x); } Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 20

Classe : PointCartesien Objectif initialiser les attributs complètement avec des Rappel : Constructeurs PointCartesien - X : double - Y : double + + + getx () : double + gety () : double + afficher () Rmq : Lorsque le paramètre d un accesseur porte le nom de l attribut de l objet qu il est chargé de modifier, sur un identificateur (conseillé d en faire un usage systématique : question de lisibilité du code). Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 21

Classe : PointCartesien Constructeurs : Codage en Java public class PointCartesien { //DECLARATIONS DES ATTRIBUTS DE LA CLASSE PointCartesien //rmq : faire debuter le commentaire par / permet de generer //ensuite une doc HTML grace aux outils adequats / etat est code par un entier et initialise a zero / private int etat; //DECLARATIONS DES CONSTRUCTEURSDE LA CLASSE PointCartesien / Constructeur de PointCartesien sans parametre X,Y initiaux du point par defaut a zero / public PointCartesien () { this.x = 0.; this.y = 0.; } / Constructeur de PointCartesien avec un parametre @param valx X initial du point / public PointCartesien (double X, double Y) { this.x = X; this.y = Y; } //... } Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 22

Exercice 1 Enoncé 1. Compléter votre PointCartesien en prenant en compte l attribut Y 2. Ajouter à votre PointCartesien les méthodes suivantes resetx (), resety () et setx (),sety (). Donner la nouvelle représentation UML du PointCartesien. 2. Concevoir un PointPolaire en vous inspirant de PointCartesien (ro en mètre et theta en degré décimal). Donner sa représentation UML. 3. Ajouter les méthodes dans PointCartesien et PointPolaire qui permettent de passer les coordonnées cartésiennes en polaires et vice et versa. Donner les nouvelles représentations UML. 4. Discuter de la conception de la classe PointPolaire si theta est en radian ou en degré sexagécimal. Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 23

Conversion cartésien - polaire Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 24

Conversion cartésien - polaire Rmq : Pour calculer la valeur de θ vous utiliserez tout d abord la méthode de classe atan2() après avoir identifié à partir de quel paquetage elle est accessible (utilisation de la documentation en ligne). Ensuite, vous concevrez votre propre méthode qui renvoie cette valeur (sans utiliser la méthode atan2()). Vous utiliserez la méthode atan(). Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 25

Conversion degré décimal - degré sexagésimal Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 26

Les mécanismes de réutilisation Critique des solutions proposées Quid de l objectif de simuler le positionnement Fastidieux de devoir Extraire les attributs?. Penser en termes de. notions de. Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1) 27