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

1 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Java : Programmation Impérative Paradigme impératif Algorithmique simple Découpage fonctionnel Quest-ce.

Présentations similaires


Présentation au sujet: "1 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Java : Programmation Impérative Paradigme impératif Algorithmique simple Découpage fonctionnel Quest-ce."— Transcription de la présentation:

1

2 1 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Java : Programmation Impérative Paradigme impératif Algorithmique simple Découpage fonctionnel Quest-ce qu un programme informatique ? / un langage de programmation ? / un paradigme de programmation ? Le paradigme impératif instructions, séquence, états, variables détat, affectation Algorithmique simple (Java noyau C) o instructions de contrôle: tests (if, ?:, switch), boucles (for, while, do / break, continue, return), bloc dinstructions (simples, imbriqués) o Types primitifs: noms, codage, opérateurs + librairie Math, typage fort, déclaration de variables, initialisation, constantes de type (2f, 0xA2, …) o Tableaux de types simples: déclaration (types), initialisation (notation accolades), manipulation (notation crochets: itération, affectation, lecture) o Chaînes de caractères (Java): String avec construction, déclaration et manipulations simples Découpage fonctionnel o Fonctions: méthodes statiques, signature, paramètres formels, application, paramètres effectifs (passage par valeurs) o Raffinement fonctionnel: granularité générale (modules, fonction, instruction, …), raffinement Résumé du cours précédent (I11)

3 2 Quest-ce quun programme informatique ? Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Mais, pour en donner une vision quelque peu concrète et usuelle, on peut voir un programme comme ce qui doit être exécuté par un ordinateur pour : soit transformer des données dun état initial vers un état final, soit faire transiter des données dun endroit à un autre, soit les deux à la fois. o Déf.3: un programme informatique est un ensemble dinstructions, rédigées pour quun ordinateur puisse, à laide de ses informations mémorisées, résoudre un problème donné. [Petit Robert] Quest-ce quun programme informatique ? o Déf.1: un programme informatique est une séquence d'instructions sous forme compréhensible par l'ordinateur (dite binaire), décrivant une tâche à accomplir par celui- ci. [http://www.linux-france.org/article/kafkafr/node59.html] o Déf.2: un programme informatique est une liste d'instructions, rédigée par un programmeur, sans laquelle un ordinateur ne saurait rien faire d'autre que rouiller. [http://rad2000.free.fr/glosntci.htm]

4 3 Exemple de programme informatique Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde

5 4 Quest-ce quun paradigme de programmation ? Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Quest-ce quun paradigme de programmation ? o Déf.: Un paradigme de programmation est un style fondamental de programmation informatique qui traite de la manière dont les solutions aux problèmes doivent être formulées dans un langage de programmation (à comparer à la méthodologie, qui est une manière de résoudre des problèmes spécifiques de génie logiciel). [http://fr.wikipedia.org/wiki/Paradigme_%28programmation%29]. Un paradigme de programmation conditionne la vision que le développeur se fera de lexécution de son programme. Il en existe de nombreux. Par exemple, les paradigmes :

6 5 Quest-ce quun paradigme de programmation ? Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde

7 6 Quest-ce que le paradigme impératif ? Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Quest-ce que le paradigme impératif ? o Déf.: Le paradigme impératif est un paradigme de programmation qui repose sur trois notions principales que sont : celle de séquence dinstructions, de variables mutables, et daffectation.

8 7 Algorithmique simple Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Quest-ce que lalgorithmique o Déf.: Lalgorithmique est lensemble des instructions permettant de réaliser un traitement recherché sur des données. En paradigme impératif, cest une séquence dinstructions. Les ensembles suivants dinstructions sont équivalents : boucles (for / while / do) ou récursivité (appels récursifs)

9 8 Quest-ce que le découpage fonctionnel ? Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Quest-ce que le découpage fonctionnel ? o Déf.: Le découpage fonctionnel consiste à morceler un traitement en plusieurs parties fonctionnelles (ou méthodes en O-O).

10 9 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Ce cours (I21) Classes et objets simples sans méthode Aspects dynamiques : le « garbage collector » Méthodes dinstance simples Connaissance de base de classes de lAPI Java Méthodes dinstance spéciales Propriétés de classes : attributs et méthodes de classes Les tableaux dobjets versus les types ensemblistes ArrayList et TreeMap de Java Premiers éléments de conception logicielle La notion de package Prolongement : les classes comme types abstraits

11 10 Comment réaliser le clavier de cette calculatrice ? Classes et objets simples : exemple Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Il faudrait disposer de boutons tels que : chaque bouton soit différent des autres par : sa légende, sa couleur, sa position et sa taille... mais que tous possèdent : une légende, une couleur, des coordonnées, une largeur et une hauteur...

12 11 Classes et objets simples : exemples (1) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Classe DOMINO Classe BOUTON Classe MAISON Classe PION Classe POISSON Classe LOTO Classe LIVRE Classe BILLET Classe ACROBATIE

13 12 Classes et objets simples : exemples (2) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde 1 couleur 1 forme n trous Classes & Objets Classe DOMINO Classe BOUTON Classe PION Classe POISSON Classe LOTO Classe LIVRE Classe BILLET Classe ACROBATIE 2 marques1 couleur 1 forme 1 valeur n lignes m colonnes n*m valeurs n*m positions 1 couleur 1 espèce 1 nourriture 1 pays 1 valeur 1 nom de monnaie 1 titre 1 auteur n pages 1 nom de figure n acrobates Descripteurs des attributs des objets Instances particulières valuées 1 objet = 1 instance de classe Objets BOUTONObjets DOMINOObjets PION Objets LOTO Objets POISSON Un objet ACROBATIE Objets LIVRE Objets BILLET

14 13 Classes et objets simples : code de classe (1) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Classes & Objets Descripteurs des attributs des objets Instances particulières valuées 1 objet = 1 instance de classe /** Classe représentant un domino * avec ses 2 marques. */ class Domino { // Attributs communs // à tous les objets // (données propres) int m1; // marque 1 int m2; // marque 2 //...à suivre... } un domino (2,5) m1 = 2 m2 = 5 un domino (3,4) m1 = 3 m2 = 4 un domino (2,5) m1 = 2 m2 = 5 un domino (6,6) m1 = 6 m2 = 6 Déclarations non statique

15 14 Constructeur dobjets (détail 1) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde La signature des construc- teurs est particulière : elle nadmet pas de type de retour ! La signature des construc- teurs est particulière : elle nadmet pas de type de retour ! Déclaration « public » seulement et non plus « public static » !

16 15 Constructeur dobjets (détail 2) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Dès lentrée dans le constructeur, le futur objet a déjà un emplacement mémoire qui lui est réservé. Pour valuer lobjet, le constructeur doit donc référencer cet espace mémoire MAIS il ne le connaît pas directement ! Pour cela, Java lui fournit la variable spéciale « this » (dite dauto-référencement). Notation pointée habituelle

17 16 Constructeur dobjets (détail 3) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde MAIS on peut aussi vouloir construire des dominos selon dautres schémas. Par exemples : o un domino double o un domino par défaut.

18 17 Construction dobjet : new Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde La classe étant maintenant finalisée, il ne reste quà construire des dominos ! class MainDominos { /** Construction de dominos */ public static void main(String[] args) { Domino d1 = new Domino(2,5); Domino d2 = new Domino(3,4); Domino d3 = new Domino(6); Domino d4 = new Domino(2,5); // Faire quelque chose des dominos... if ( d4.m1!=d4.m2 ) d4.m1 = d4.m2; } domino d1 m1 = 2 m2 = 5 domino d2 m1 = 3 m2 = 4 domino d3 m1 = 6 m2 = 6 domino d4 m1 = 2 m2 = 5 d1 et d4 sont des objets différents !

19 18 Accès aux attributs des objets : OID versus this Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde this:Domino d4: Domino m1 = 2 m2 = 5 Vision externe Vision interne En dehors de lobjet, on utilise lobjet Dans lobjet, on "est" lobjet classe MainDominos +$ Main(String[]) classe Domino m1 : int m2 : int +Domino(int,int) +Domino(int) +Domino() += public $ = static

20 19 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Classes et objets simples : VISION EXTERNE classe MainDominos Quand le code en cours dexécution se trouve Un domino m1 = 2 m2 = 5 Un domino m1 = 3 m2 = 4 d2 d4 Vision externe += public $= static

21 20 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Classes et objets simples: VISION INTERNE classe Domino m1 : int m2 : int Quand le code en cours dexécution se trouve Dominos déjà construits m1 = 3 m2 = 4 Vision interne += public

22 21 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Acta est fabula* * « La pièce est jouée. » On annonçait ainsi la fin de la représentation dans le théâtre antique.


Télécharger ppt "1 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Java : Programmation Impérative Paradigme impératif Algorithmique simple Découpage fonctionnel Quest-ce."

Présentations similaires


Annonces Google