Support de cours et TD Programmation Orientée Objet
|
|
|
- Corinne Normandin
- il y a 10 ans
- Total affichages :
Transcription
1 REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Institut Supérieur des Etudes Technologiques de Médenine Département Informatique Support de cours et TD Programmation Orientée Objet Niveau : TI2 Elaboré par : BOUABID Mohamed Année universitaire :
2 Objectifs du cours : Ce cours permet à l étudiant d acquérir les connaissances nécessaires pour écrire des programmes orientés objets. Objectifs spécifiques : Comprendre les concepts de base de la programmation orientée objet. Implémenter des classes d objets : créer une classe en précisant ses propriétés et ses opérations et leur visibilité, et en définissant ses constructeurs Comprendre le principe d héritage. Comprendre le principe du polymorphisme Comprendre les notions d interfaces et des classes abstraites. Comprendre le mécanisme de gestion des exceptions Pré-requis : Programmation, algorithmique et structure de données. Bibliographie Livres de référence o Programmer en Java de Claude Delannoy aux éditions Eyrolles o Penser en Java, Seconde édition de Bruce Eckel Note de cours «Apprentissage du langage Java», Serge Tahé - ISTIA - Université d'angers Autre ouvrage sur Java o Programmation JavaTM pour les enfants, les parents et les grandsparents, Yakov Fain (c est un livre électronique) p. 2
3 Table des matières Introduction à la Programmation Orientée Objet De la programmation classique vers la programmation orientée objet Notions de base de la POO Notion d'objet Notion de classe Notion d encapsulation Les langages orientés objet... 9 Syntaxe de base du langage Java Les données de Java Les variables a) Les noms de variables b) Les types de base de Java c) Déclarer une variable Les Constantes Tableaux et matrices Chaînes de caractères L instruction d affectation Opérateurs et expressions Expression arithmétique Expressions relationnelles Expressions booléennes Combinaison d'opérateurs Opérateurs d'incrémentation et de décrémentation L'opérateur? Structures de contrôle Instruction conditionnelle : if Instruction conditionnelle : switch Itérations : while, do...while et for Commentaires Classes et objets Structure d un programme autonome Java p. 3
4 3.2. Package objets et classes Généralités Accès au membre d une classe L'opérateur new Le mot clé this Un programme de test Les constructeurs de classe Les méthodes de lecture et d'écriture des attributs privés Les méthodes et attributs de classe Héritage La notion d'héritage Accès d une classe dérivée aux membres de sa classe de base Construction et initialisation des objets dérivés La notion de redéfinition et surdéfinition de méthodes Redéfinition Surdéfinition Le polymorphisme Concept de polymorphisme Exemple et interprétations Les conversions explicites de références Les classes abstraites et les interfaces Les classes abstraites Concept des abstraites a) Syntaxe b) Utilisation c) Remarques d) Exemple Les interfaces Concept d interface a) Définitions d une interface b) Implémentation d une interface c) Exemple d) Interface et constantes p. 4
5 e) Remarques Les exceptions Traitement des exceptions Les exceptions prédéfinies Les exceptions personnalisées Travaux dirigés p. 5
6 Chapitre 1 Introduction à la Programmation orientée Objet Chapitre 1 Introduction à la Programmation Orientée Objet 1. De la programmation classique vers la programmation orientée objet Les premiers programmes informatiques étaient généralement constitués d une suite d instructions s exécutant de façon linéaire (l exécution commence de la première instruction du fichier source et se poursuivait ligne après ligne jusqu à la dernière instruction du programme). Cette approche, bien que simple à mettre en œuvre, a très rapidement montré ses limites. En effet, les programmes monolithiques de ce type : ne se prêtent guère à l écriture de grosses applications et ne favorisent absolument pas la réutilisation du code. En conséquence est apparue une autre approche radicalement différente : l approche procédurale. L approche procédurale (classique) consiste à découper un programme en un ensemble de fonctions (ou procédures). Ces fonctions contiennent un certain nombre d instructions qui ont pour but de réaliser un traitement particulier. Exemples de traitements qui peuvent être symbolisés par des fonctions : Le calcul de la circonférence d un cercle l impression de la fiche de paie d un salarié etc. Dans le cas de l approche procédurale, un programme correspond à l assemblage de plusieurs fonctions qui s appellent entre elles. Bloc monolithique F2 F1 P1 Fonctions et procédures F3 P2 P3 Exemple de langages de programmation procédurale : C, Pascal, Ada, Cobol, Fortran, etc. L approche procédurale favorise : La création d'un code plus modulaire et structuré La possibilité de réutiliser le même code à différents emplacements dans le programme sans avoir à le retaper p. 6
7 Chapitre 1 Introduction à la Programmation orientée Objet Malgré ses avantages, l approche procédurale présente également des inconvénients : Les fonctions, procédures accèdent à une zone où sont stockées les données. Il y a donc une dissociation entre les données et les fonctions ce qui pose des difficultés lorsque l on désire changer les structures de données. Dans les langages procéduraux, les procédures s appellent entre elles et peuvent donc agir sur les mêmes données.il ya donc un risque de partage des données (écriture en même temps dans le même le fichier). De ces problèmes sont issus une autre manière de programmer : la programmation par objet. L approche orientée objet (Début des années 80). Selon cette approche, un programme est vu comme un ensemble d entités (ou objets). Au cours de son exécution, ces entités collaborent en s envoient des messages dans un but commun. Objet 1 Objet 2 Objet 3 Nous avons dans ce schéma un lien fort entre les données et les fonctions qui y accèdent. Mais qu appelle-t-on un objet? Que représente un objet? 2. Notions de base de la POO 2.1 Notion d'objet Un objet est une entité caractérisée par : Une identité : L identité d un objet permet de distinguer l objet par rapport aux autres. Un état interne : correspond aux valeurs de tous les attributs à un instant donné. Un comportement : se défini par l ensemble des opérations qu il peut exécuter en réaction aux messages envoyés (un message = demande d exécution d une opération) par les autres objets. Exemple : l objet «employe» Dans une entreprise, un employé toto (son matricule 100 permet son identification unique dans l entreprise), est employé sur un poste de technicien dans la société X située à Tunis. p. 7
8 Chapitre 1 Introduction à la Programmation orientée Objet Son état est caractérisé par l ensemble des valeurs de ses attributs. Matricule : 100 nom : TOTO qualification : Technicien Lieu de travail : Tunis Son comportement est caractérisé par les opérations qu il peut réaliser : entrer/sortir de la société changer de qualification changer de lieu de travail Bref, l ensemble des opérations pouvant affecter ses attributs. Un objet est caractérisé par des : Des attributs : des variables représentant l'état de l'objet Des méthodes : fonctions ou procédure décrivant son comportement. 2.2 Notion de classe Certains objets présentent les mêmes caractéristiques. Ils ont des identités différents mais : Un état défini sur les mêmes propriétés Un comportement similaire Exemple : employe Ali Ingénieur & employe Mohamed technicien «employe1» et «employe 2» sont caractérisés par les mêmes propriétés (matricule, nom, qualification) mais associés à des valeurs différents. Ils ont la même comportement (entrer/sortir de la société, changer de qualification.) mais ont des identités différentes. Et il en serait de même pour tous les employés. Tous les employés obéissent à un même schéma. On peut donc en abstraire un modèle. En POO, un tel modèle est appelé classe. Une classe regroupe un ensemble d'objet qui possède une structure identique (liste des attributs) et un même comportement (liste des opérations). Un objet est une instance d une classe. Exemple : La classe <<Employe>> Employe -matricule -nom -qualification -entrer() -changerposte() -changerlieutravail() p. 8
9 Chapitre 1 Introduction à la Programmation orientée Objet 2.3 Notion d encapsulation Si l on reprend l exemple précédent, la classe est l employé, l instance de classe (l objet) est l employé 100, TOTO, Par rapport à une approche «classique» que l on peut observer dans la programmation procédurale, l approche objet se caractérise par le regroupement dans une même classe de la description des attributs et des opérations (méthodes). Ce regroupement s appelle l encapsulation. On masque l information au monde extérieur. L état interne est visible donc de l objet seul. Comment accéder ou modifier l état interne de l objet?en utilisant deux types de messages : Accesseur : accéder à la valeur d un attribut Modificateur : modifier la valeur d un attribut Exemple : accesseur «nom» employe1 Matricule : 100 Nom : Ali Qualification : ingénieur Nom Ali 3. Les langages orientés objet Un langage est orienté objet s il possède les mécanismes supportant le style de programmation orientée objet. Il ya plusieurs langages de programmation OO actuellement : Java, c++, c#, PHP, etc. Nous allons nous intéresser dans la suite de ce cours au langage java. Java est un langage développé par SunMicrosystems (racheté par oracle en 2009) en La particularité de ce langage est qu'il a été conçu directement comme un langage de programmation orienté objets contrairement au C++ ou l'aspect n'est qu'une extension du C. Java est aussi caractérisé par le faite qu'il est un langage portable : l'utilisateur peut développer un sous windows et l'exécuter sous des environnements et architectures diverses tels que MacOS, Linux et bien d'autres. p. 9
10 Chapitre 2 Syntaxe de base du langage Java Chapitre 2 Syntaxe de base du langage Java Nous traitons Java d'abord comme un langage de programmation classique. Nous aborderons les objets ultérieurement, dans les chapitres suivants. Dans un programme on trouve : des données les instructions qui les manipulent 2.1. Les données de Java Les variables Une variable est caractérisée par : un Nom : permet de repérer l emplacement mémoire dans lequel la valeur est placée. un Type : détermine la façon dont est traduite la valeur en code binaire ainsi que la taille de l emplacement mémoire. a) Les noms de variables Les identificateurs ne peuvent commencer que par une lettre, un souligné ( _ ) ou un dollar ( $ ). Les caractères suivants peuvent être des lettres ou des chiffres. Exemples : nom,_nom $nom Note : Il convient de réserver des noms commençant par une majuscule aux classes. Les noms composés sont sous la forme NomCompose ou bien nomcompose, et de façon générale, on conseille de nommer les variables et méthodes de façon parlante. Exemple : classes : Personne, Livre, Matière, etc. nom composé : datedenaissance b) Les types de base de Java Il faut préciser le type des variables utilisées. Dans chaque langage, il existe un nombre de types prédéfinis. Ces types sont dits simples, car, à un instant donné, une variable de type simple ne peut contenir qu une et une seule valeur. Remarque : Nous rencontrerons par la suite des types structurés qui permettent le stockage, sous un même nom de variable, de plusieurs valeurs de même type ou non. Il s agit des tableaux, des classes, des vecteurs, etc. Les types simples en Java sont les suivants : Caractères : le type caractère est char. Il est représenté sur 16 bits. Booléens : le type booléen est boolean. Les deux seules valeurs qu il peut prendre sont true et false. p. 10
11 Chapitre 2 Syntaxe de base du langage Java Entiers : Ils sont très similaires à ceux du langage C. Les 4 types d entiers sont : o byte => entier sur 8 bits { o short => entier sur 16 bits { o int => entier sur 32 bits o long => entier sur 64 bits Réels : Il n y a que deux types de réels en Java : o float=> représenté sur 32 bits o double=> représenté sur 64 bits Remarque : En langage Java, toute valeur numérique réelle est définie par défaut en double précision (type double). Par conséquent, la lettre d (ou D) placée en fin de valeur n est pas nécessaire. Par contre, dès que l on utilise une variable float, la lettre f (ou F) est indispensable, sous peine d erreur de compilation. Java est un langage très rigoureux sur le typage des données. Il est interdit d affecter à une variable la valeur d une variable d un type différent si cette seconde variable n est pas explicitement transformée. Par exemple : int a; double b = 5.0; a = b; est interdit et doit être écrit de la manière suivante : int a ; double b = 5.0 ; a = (int)b ; c) Déclarer une variable En déclarant une variable, le programmeur donne le type et le nom de la variable. Syntaxe : type nomdevariable; ou type nomdevariable1, nomdevariable2; Exemples : int test; char choix, temp; Remarque : Les instructions de déclarations peuvent être placées indifféremment au début ou en cours de programme Les Constantes Une constante est une variable dont la valeur est inchangeable lors de l'exécution d'un programme. En Java, le mot clé final permet de définir une variable dont la valeur ne peut pas être modifiée après son initialisation. p. 11
12 Chapitre 2 Syntaxe de base du langage Java Par convention, le nom des constantes est toujours en majuscules afin de les distinguer sans équivoques des variables. La tentative de modifier une constante dans le programme entraînera une erreur lors de la compilation Exemple : final int CODE = 1234; final float PI =3.14f ; final char VOYELLE = 'a'; final char TABULATION = '\t'; final char RETOUR_ALA_LIGNE= '\n'; 2.2. Tableaux et matrices Une variable est déclarée comme un tableau dès lors que des crochets sont présents soit après son type, soit après son identificateur. Les deux syntaxes suivantes sont acceptées pour déclarer un tableau d entiers (même si la première, non autorisée en C, est plus intuitive) : int[] mon_tableau; int mon_tableau2[]; Un tableau a toujours une taille fixe qui doit être précisée avant l affectation de valeurs à ses indices, de la manière suivante : int[] mon_tableau = new int[20]; De plus, la taille de ce tableau est disponible dans une variable length appartenant au tableau et accessible par mon_tableau.length. On peut également créer des matrices ou des tableaux à plusieurs dimensions en multipliant les crochets (ex : int[][] ma_matrice ;). À l instar du C, on accède aux éléments d un tableau en précisant un indice entre crochets (mon_tableau[3] est le quatrième entier du tableau) et un tableau de taille n stocke ses éléments à des indices allant de 0 à n Chaînes de caractères Les chaînes de caractères ne sont pas considérées en Java comme un type primitif ou comme un tableau. On utilise une classe particulière, nommée String, fournie dans le package java.lang. Une chaine de caractère se déclare normalement de la manière suivante : String s1 = new String(); //pour une chaîne vide String s2 = new String( hello world ); // pour une chaîne de valeur hello world Comme les strings sont un type de données très utilisé, java permet une déclaration très simple : String s2 = hello world ; p. 12
13 Chapitre 2 Syntaxe de base du langage Java Java dispose d une classe standard nommée String, permettant de manipuler des chaînes de Caractères. La classe String est riche d'attributs et méthodes. En voici quelques-uns : boolean equals(object anobject) : Comparaison des chaines: (chaine1.equals(chaine2) rend vrai si chaine1=chaine2, faux sinon) String substring(int beginindex, int endindex): extraction des sous chaines () int length() : longueur d'une chaine etc L instruction d affectation Syntaxe : Variable = Valeur; Ou : Variable = expression mathématique; Exemples : n = 4; p = 5*n+1; 2.5. Opérateurs et expressions Expression arithmétique Les opérateurs des expressions arithmétiques sont les suivants : + addition - soustraction * multiplication / division. Exemples : 5/2 vaut 2 et 5.0/2 vaut 2.5. % reste de la division. Priorités dans l'évaluation des expressions arithmétiques La priorité des opérateurs lors de l'évaluation d'une expression arithmétique est la suivante (du plus prioritaire au moins prioritaire) : [ ( )],[ *, /, %], [+, -] Les opérateurs d'un même bloc [ ] ont même priorité Expressions relationnelles Les opérateurs sont les suivants : <, <=, == (égal),= (différent), >, >= Expressions booléennes Les opérateurs sont & (and) (or) et! (not). Le résultat d'une expression booléenne est un booléen Combinaison d'opérateurs a=a+b peut s'écrire a+=b a=a-b peut s'écrire a-=b Il en est de même avec les opérateurs /, %,* Ainsi a=a+2; peut s'écrire a+=2; p. 13
14 Chapitre 2 Syntaxe de base du langage Java Opérateurs d'incrémentation et de décrémentation La notation variable++ signifie variable=variable+1 ou encore variable+=1 La notation variable-- signifie variable=variable-1 ou encore variable-= L'opérateur? L'expression cond? expr1:expr2 est évaluée de la façon suivante : si -sinon) :si cond alors expr1 sinon expr Structures de contrôle Instruction conditionnelle : if Elle permet d exécuter des instructions de manière sélective, en fonction du résultat d un test. Syntaxe : if (expression) instruction1 if (expression) instruction1 else instruction Instruction conditionnelle : switch Elle permet de choisir un bloc d instruction selon la valeur d une expression entière : Syntaxe : switch (expression) { case cste1 : instruction1; break ; case cste2 : instruction2; break ;... case csten : instructionn ;break ; default : instructiondefaut Itérations : while, do...while et for La structure de contrôle while évalue une condition et exécute l instruction tant que cette condition reste vraie. Syntaxe : while (condition) instruction Exemple : int i=10; while (i>=0) { System.out.println(i); i=i-1; L instruction do...while est une variante de la précédente. Une itération est toujours exécutée. p. 14
15 Chapitre 2 Syntaxe de base du langage Java Syntaxe : do instruction while (condition) Exemple : int i=-1; do { System.out.println(i); i=i-1; while (i>=0); Enfin, l instruction for qui comporte une initialisation, une condition d arrêt, et une ou des instructions de fin de boucle : Syntaxe : for (instruction1;condition_de_poursuite;instruction2) instruction ; Exemple : for (int i=0;i<50;i++) System.out.println(i); 2.7. Commentaires Java reconnait trois types de commentaires : les commentaires sur une ligne : tous les caractères suivants //... jusqu à la fin de la ligne sont ignorés Exemple : int a ; // ce commentaire tient sur une ligne int b ; les commentaires multi-lignes : tous les caractères entre /*... et...*/ sont ignorés Exemple : /*Ce commentaire nécessite 2 lignes*/ int a ; les commentaires de documentation : quand ils sont placés juste avant une déclaration, les caractères entre /**...et...*/ sont inclus dans une documentation générée automatiquement par l utilitaire javadoc. p. 15
16 Chapitre 3 Classes et Objets Chapitre 3 Classes et objets 3.1. Structure d un programme autonome Java Un programme écrit en Java consiste en un ensemble de classes représentant les éléments manipulés dans le programme et les traitements associés. L'exécution du programme commence par l'exécution d'une classe qui doit implémenter une méthode particulière public static void main(string[] args). Les classes implémentant cette méthode sont appelées classes exécutables. Exemple : Une classe Java Bonjour qui affiche la chaîne de caractères Bonjour s'écrit : // Fichier Bonjour.java public class Bonjour { public static void main(string[ ] args) { System.out.println("Bonjour!\n"); Dans ce premier programme très simple, une seule classe est utilisée. Cependant, la conception d'un programme orienté-objet nécessite, pour des problèmes plus complexes, de créer plusieurs classes et la classe exécutable ne sert souvent qu à instancier les premiers objets. L argument "args" est un tableau de chaines de caractères qui correspond aux arguments de la ligne de commande lors du lancement du programme. Si la classe avait été exécutée par la ligne de commande "java HelloWorld 4 toto ", ce tableau contiendrait 2 éléments dont les valeurs seraient respectivement "4" et "toto" Package Java dispose d'un grand nombre de classes qui implémentent des données et des traitements génériques utilisables par un grand nombre d applications. Ces classes forment l API (Application Programming Interface) du langage Java et sont organisées en packages (ou bibliothèques) dédiés à un thème précis. Parmi les packages les plus utilisés, on peut citer les suivants : Package java.awt java.io java.lang java.util javax.swing Description Classes de gestion d interfaces graphiques Gestion des entrées/sorties contient les classes standards (de base) telles que les classes String ou Math (importé par défaut) Classes utilitaires telles que les classes Date, StringTokenizer (découper une chaine selon des délimiteurs), etc. Autres classes graphiques p. 16
17 Chapitre 3 Classes et Objets Pour accéder à une classe d un package donné, il faut préalablement importer cette classe ou son package. Par exemple, la classe Date appartenant au package java.util qui implémente un ensemble de méthodes de traitement sur une date peut être importée de deux manières : une seule classe du package est importée : import java.util.date; toutes les classes du package sont importées (même les classes non utilisées) : import java.util.*; Le programme suivant utilise cette classe pour afficher la date actuelle : import java.util.date; public class DateMain { public static void main(string[] args) { Date today = new Date(); System.out.println( Nous sommes le + today.tostring()); 3.3. objets et classes Généralités Nous abordons maintenant, par l'exemple, la programmation objet. Un objet est une entité qui contient des données qui définissent son état (on les appelle des attributs ou propriétés) et des fonctions (on les appelle des méthodes). Un objet est créé selon un modèle qu'on appelle une classe : public Class nom_class{ type1 p1; // propriété p1 type2 p2; // propriété p2 type3 m3( ){ // méthode m3 type4 m4( ){ // méthode m4 A partir de la classe C1 précédente, on peut créer de nombreux objets O1, O2, Tous auront les propriétés p1, p2, et les méthodes m3, m4, Ils auront des valeurs différentes pour leurs propriétés pi ayant ainsi chacun un état qui leur est propre. Exemple: Considérons la classe Personne suivante : import java.io.*; public class Personne{ // attributs private String prenom; private String nom; private int age; // méthode public void initialiser(string P, String N, int age){ this.prenom=p; p. 17
18 Chapitre 3 Classes et Objets this.nom=n; this.age=age; // méthode public void identifier(){ System.out.println(prenom+","+nom+","+age); Nous avons ici la définition d'une classe, le nom de la classe représente un nouveau type de donnée. On peut donc définir des variables de ce nouveau type; on dit alors que nous créons des objets ou des instances de classe. Un objet possède tous les attributs et toutes les de fonctions membres de la classe, mais avec des valeurs d attributs qui lui sont propres. Programmation Procédurale VARIABLE TYPE Programmation Orientée-Objet OBJET CLASSE Accès au membre d une classe Les membres d'une classe peuvent être des données ou des méthodes (fonctions). Ces champs peuvent avoir l'un des trois attributs suivants : private: les membres privés ne sont accessible que par les fonctions membres de la classe. protected: les membres protégés sont comme les membres privés. Mais ils sont aussi accessibles par les fonctions membres des classes dérivées (concept d'héritage). Public: les membres publics sont accessibles par tous. La partie publique est appelée interface. L encapsulation consiste à masquer l accès à certains attributs et méthodes d une classe. Elle est réalisée à l aide des mots clé: private, protected. Exemple: La méthode initialiser() Quel est le rôle de la méthode initialiser? Parce que nom, prenom et age sont des données privées de la classe Personne, les instructions suivantes : Personne p1; p1.prenom="ali"; p1.nom="ben Mohamed"; p1.age=30; sont illégales. Il nous faut initialiser un objet de type Personne via une méthode publique. C'est le rôle de la méthode initialiser(). On écrira donc : Personne p1; p1.initialiser("ali","ben Mohamed",30); L'écriture p1.initialiser() est légale car initialiser() est d'accès public. p. 18
19 Chapitre 3 Classes et Objets L'opérateur new La séquence d'instructions : Personne p1; p1.initialiser("ali","ben Mohamed",30); est incorrecte. L'instruction Personne p1; déclare p1 comme une référence à un objet de type Personne. Cet objet n'existe pas encore et donc p1 n'est pas initialisé. C'est comme si on écrivait : Personne p1=null; où on indique explicitement avec le mot clé null que la variable p1 ne référence encore aucun objet. Lorsqu'on écrit ensuite : p1.initialiser("ali","ben Mohamed",30); on fait appel à la méthode initialiser de l'objet référencé par p1. Or cet objet n'existe pas encore et le compilateur signalera l'erreur. Pour que p1 référence un objet, il faut écrire : Personne p1=new Personne(); Cela a pour effet de créer un objet de type personne non encore initialisé : les attributs nom et prenom qui sont des références d'objets de type String auront la valeur null, et age la valeur 0. Il y a donc une initialisation par défaut. Maintenant que p1 référence un objet, l'instruction d'initialisation de cet objet p1.initialiser("ali","ben Mohamed",30); est valide Le mot clé this Regardons le code de la méthode initialiser : public void initialiser(string P, String N, int age){ this.prenom=p; this.nom=n; this.age=age; L'instruction this.prenom=p signifie que l'attribut prenom de l'objet courant (this) reçoit la valeur P. Le mot clé this désigne l'objet courant : celui dans lequel se trouve la méthode exécutée. p1.initialiser("ali","ben Mohamed",30); La méthode initialiser aurait aussi pu être écrite comme suit : public void initialiser(string P, String N, int age){ p. 19
20 Chapitre 3 Classes et Objets prenom=p; nom=n; this.age=age; Lorsqu'une méthode d'un objet référence un attribut A de cet objet, l'écriture this.a est implicite. On doit l'utiliser explicitement lorsqu'il y a conflit d'identificateurs. C'est le cas de l'instruction : this.age=age; où age désigne un attribut de l'objet courant ainsi que le paramètre age reçu par la méthode. Il faut alors lever l'ambiguïté en désignant l'attribut age par this.age Un programme de test Voici un programme de test : public class TestPersonne{ public static void main(string arg[]){ Personne p1=new Personne(); p1.initialiser("ali","ben Mohamed",30); p1.identifier(); Les constructeurs de classe Le constructeur est une méthode portant le même nom de la classe, qui peut accepter des arguments mais ne rend aucun résultat (même pas void) et qui est appelée lors de la création de l'objet. On s'en sert généralement pour l'initialiser Créons un premier constructeur à notre classe Personne : import java.io.*; public class Personne{ // attributs // Constructeurs Public personne () { Nom="nnondef"; // nnondef : nom non encore défini Prenom="pnondef"; // pnondef : prenom non encore défini age =0; // méthode Voici un programme de test : import java.io.*; public class TestPersonne{ public static void main(string arg[ ]){ p. 20
21 Chapitre 3 Classes et Objets Personne p1=new Personne(); p1.identifier(); Ce programme affiche : nnondef, pnondef, 0. On remarque donc que les instructions définies dans le constructeur ont été exécuté lors de la déclaration de l'objet p1 qui est de type Personne. Si une classe C n'a aucun constructeur, elle en a un par défaut qui est le constructeur sans paramètres : public C(). Les attributs de l'objet sont alors initialisés avec des valeurs par défaut. Une classe peut avoir un ou plusieurs constructeurs. Exemple : Ajoutons un autre constructeur à la classe Personne : import java.io.*; public class Personne{ // attributs // Constructeurs Public personne () { Nom="nnondef"; // nnondef : nom non encore défini Prenom="pnondef"; // pnondef : prenom non encore défini age =0; Public personne (String nom, String prenom, int age) { this.nom=nom; this.prenom=prenom; this.age=age; // méthode Le programme de test suivant : import java.io.*; public class TestPersonne{ public static void main(string arg[]){ Personne p1=new Personne('ben mohamed','ali',20); p1.identifier(); affiche ce qui suit : Ben mohamed, ali, 20 Le constructeur qu'on venait de définir, peut se contenter de faire appel à la méthode initialiser défini précédemment Les méthodes de lecture et d'écriture des attributs privés p. 21
22 Chapitre 3 Classes et Objets Nous rajoutons à la classe Personne les méthodes nécessaires pour lire ou modifier l'état des attributs des objets : public class Personne{ private String prenom; private String nom; private int age; public personne(string P, String N, int age){ this.prenom=p; this.nom=n; this.age=age; public void identifier(){ System.out.println(prenom+","+nom+","+age); // accesseurs public String getprenom(){ return prenom; public String getnom(){ return nom; public int getage(){ return age; //modifieurs public void setprenom(string P){ this.prenom=p; public void setnom(string N){ this.nom=n; public void setage(int age){ this.age=age; Testons donc la nouvelle classe avec le programme suivant : public class TestPersonne{ public static void main(string[] arg){ Personne P=new Personne("Ali","Ben Mohamed",34); System.out.println("P=("+P.getPrenom()+","+P.getNom()+","+P.getAge()+")"); P.setAge(56); System.out.println("P=("+P.getPrenom()+","+P.getNom()+","+P.getAge()+")"); p. 22
23 Chapitre 3 Classes et Objets Nous obtenons les résultats suivants : P=(Ali,Ben Mohamed,34) P=(Ali,Ben Mohamed,56) Les méthodes et attributs de classe Supposons qu'on veuille compter le nombre d'objets personne créées dans une application. On peut soi-même gérer un compteur mais on risque d'oublier les objets temporaires qui sont créés ici ou là. Il semblerait plus sûr d'inclure dans les constructeurs de la classe Personne, une instruction incrémentant un compteur. La variable compteur (nbpersonne) est une variable partagée par toutes les instances d une classe. C'est une variable de classe. Comme c'est un attribut de la classe ellemême et non d'un objet particulier de cette classe, on le déclare différemment avec le mot clé static : private static long nbpersonnes; // nombre de personnes créées Pour rendre la valeur de nbpersonnes, la méthode n'a pas besoin d'un objet particulier : en effet nbpersonnes n'est pas l'attribut d'un objet particulier, il est l'attribut de toute une classe. On a besoin d'une méthode de classe déclarée elle aussi static : public static long getnbpersonnes(){ return nbpersonnes; qui de l'extérieur sera appelée avec la syntaxe Personne.getNbPersonnes(). La classe Personne devient la suivante : public class personne{ // attribut de classe private static long nbpersonnes=0; // attributs d'objets // constructeurs public personne(string P, String N, int age){ this.nom=nom; this.prenom=prenom; this.age=age; nbpersonnes++; // méthode // méthode de classe public static long getnbpersonnes(){ return nbpersonnes; Avec le programme suivant : public class Test1{ public static void main(string arg[ ]){ personne p1=new personne("ali","ben Mohamed",30); p. 23
24 Chapitre 3 Classes et Objets personne p2=new personne(p1); new personne(p1); System.out.println("Nombre de personnes créées:"+personne.getnbpersonnes()); On obtient les résultats suivants : Nombre de personnes créées : 3 p. 24
25 Chapitre 4 -Héritage Chapitre 4 Héritage Comme nous l avons déjà signalé au chapitre 1, le concept d héritage constitue l un des fondements de la programmation orientée objet. Il est notamment à l origine des possibilités de réutilisation des composants logiciels que sont les classes. En effet, il permet de définir une nouvelle classe, dite classe dérivée, à partir d une classe existante dite classe de base. Cette nouvelle classe hérite des fonctionnalités de la classe de base (champs et méthodes) qu elle pourra modifier ou compléter à volonté, sans qu il soit nécessaire de remettre en question la classe de base La notion d'héritage Nous allons voir comment mettre en œuvre l héritage en Java, à partir d un exemple simple de classe. Supposez que nous disposions de la classe Personne décrite dans le chapitre précédent : public class Personne{ private String nom; private String prenom; private int age; Supposons qu'on veuille créer une classe enseignant : un enseignant est une personne particulière. Il a des attributs qu'une autre personne n'aura pas : la spécialité qu'il enseigne par exemple (génie électrique, génie informatique,etc.). Mais il a aussi les attributs de toute personne : prénom, nom et âge. Un enseignant fait donc pleinement partie de la classe personne mais il a des attributs supplémentaires. Plutôt que d'écrire une classe enseignant en partant de rien, on préfèrerait reprendre l'acquis de la classe personne qu'on adapterait au caractère particulier des enseignants. C'est le concept d'héritage qui nous permet cela. Pour exprimer que la classe enseignant hérite des propriétés de la classe personne, on écrira : public class Enseignant extends Personne Personne est appelée la classe de base (ou mère) et enseignant la classe dérivée (ou fille). Un objet enseignant à toutes les qualités d'un objet personne : il a les mêmes attributs et les mêmes méthodes. Ces attributs et méthodes de la classe parent ne sont pas répétées dans la définition de la classe fille : on se contente d'indiquer les attributs et méthodes rajoutés par la classe fille : class enseignant extends personne{ // attributs private int specialite; p. 25
26 Chapitre 4 -Héritage Ici la classe enseignant rajoute aux méthodes et attributs de la classe personne : un attribut specialite qui décrit la spécialité enseignée par l'enseignant Accès d une classe dérivée aux membres de sa classe de base Une classe dérivée n accède pas aux membres privés de sa classe de base Elle accède aux membres publics et protégés de sa classe de base 5.3. Construction et initialisation des objets dérivés Rappelons que le constructeur de la classe personne était : // constructeur public Personne (String P, String N, int age){ this.prenom=p; this.nom=n this.age=age On sait que ce constructeur initialise les champs prenom, nom et age. Le constructeur de la classe enseignant, qui initialise les champs nom, prenom,age et specialite est le suivant : // constructeur public enseignant(string P, String N, int age,int specialite){ this.prenom=p; this.nom=n this.age=age this.specialite=specialite; C'est impossible. La classe personne a déclaré privés (private) ses trois champs prenom, nom et age. Seuls des objets de la même classe ont un accès direct à ces champs. Tous les autres objets, y compris des objets dérivés comme ici, doivent passer par des méthodes publiques pour y avoir accès. Cela aurait été différent si la classe personne avait déclaré protégés (protected) les trois champs : elle autorisait alors des classes dérivées à avoir un accès direct aux trois champs. Dans notre exemple, il faut utiliser le constructeur de la classe parent. C'est la méthode habituelle : lors de la construction d'un objet fils, on appelle d'abord le constructeur de l'objet parent puis on complète les initialisations propres cette fois à l'objet fils (specialite dans notre exemple). L'appel au constructeur de la classe parent, se fait en utilisant l'instruction super : // constructeur public enseignant(string P, String N, int age,int specialite){ super(p,n,age); this.specialite=specialite; p. 26
27 Chapitre 4 -Héritage Exemple d'un programme de test public class test1{ public static void main(string arg[]){ System.out.println(new Enseignant("ali","med",25,501).identifier()); Ce programme ce contente de créer un objet enseignant et de l'identifier. La classe enseignant n'a pas de méthode identifier() mais sa classe parent en a une qui de plus est publique : elle devient par héritage une méthode publique de la classe enseignant La notion de redéfinition et surdéfinition de méthodes Redéfinition Nous avons vu qu un objet d une classe dérivée peut accéder à toutes les méthodes publiques de sa classe de base. Considérons : class Personne {... public void affiche() { System.out.println ("Je suis " +prenom+","+nom+","+age) ; class Enseignant extends Personne {... // ici, on suppose qu aucune methode ne se nomme affiche private int specialite ; Personne p ; Enseignant e; L appel p.affiche() fournit tout naturellement les informations relative à l objet p de type Personne. L appel e.affiche() fournit également les informations de l objet e de type Enseignant, mais bien entendu, il n a aucune raison d en fournir le code de la specialite. Pour faire cela, nous allons définir dans la classe dérivée une fonction portant le même nom, et qui aura pour rôle d'afficher les données privées de la classe dérivée. On parle alors de redéfinition d'une fonction de la classe de base. class Enseignant extends Personne {... // ici, on suppose qu aucune methode ne se nomme affiche private int specialite ; public void affiche () { super.affiche() ; System.out.println (" mon code specialite : " + specialite) ; p. 27
28 Chapitre 4 -Héritage Même si cela est fréquent, une redéfinition de méthode n entraîne pas nécessairement comme ici l appel par super de la méthode correspondante de la classe de base. Une méthode de classe (static) ne peut pas être redéfinie dans une classe dérivée. Cette restriction va de soi puisque c est le type de l objet appelant une méthode qui permet de choisir entre la méthode de la classe de base et celle de la classe dérivée. Comme une méthode de classe peut être appelée sans être associée à un objet, on comprend qu un tel choix ne soit plus possible Surdéfinition Surdéfinir une méthode consiste à lui donner plusieurs significations. Nous choisirons la bonne signification en fonction du contexte dans lequel cette méthode sera utilisée. Exemple : class A { public void f (int n) { class B extends A { public void f (float x) { A a ; B b ; int n ; float x ;... a.f(n) ; // appelle f (int) de A a.f(x) ; // erreur de compilation b.f(n) ; // appelle f (int) de A b.f(x) ; // appelle f(float) de B Ne pas confondre la redéfinition avec la surcharge : Redéfinition : même type de retour et mêmes paramètres. Surcharge : type de retour et paramètres différents, les paramètres au moins doivent être différents. p. 28
29 Chapitre 5 -Le polymorphisme Chapitre 5 Le polymorphisme 6.1. Concept de polymorphisme Le polymorphisme est un concept extrêmement puissant en POO. Il permet de manipuler des objets sans en connaître tout à fait le type tout en se basant sur la relation d héritage. Le polymorphisme se base sur cette affirmation : un objet a comme type non seulement sa classe mais aussi n importe quelle classe dérivée Exemple et interprétations //classe de base Class graphique { Private int x,y ; Public graphique (int x,int y) {this.x=x ;This y=y ; Public void identifier () { System.out.prntln(«Je suis une forme géométrique») ; Public void affiche () { This.identifier() ; System.out.println(«Le centre de l objet se trouve dans :»+x + «et» +y) ; Double surface () {return (0) ; //fin de la classe graphique //classe dérivée 1 Class Cercle extends graphique { Private double rayon=1 ; Public Cercle (int x,int y, double r) { super (x,y) ; Rayon=r ; Public void identifier () { System.out.prntln(«Je suis un cercle») ; Double surface() {return (rayon*2*3.14) ; // Classe dérivée2 Class rectangle extends graphique { Private int larg, longueur ; Rectangle (int x, int y, int l1, int l2) {super (x,y) ; Longueur =l1 ; larg=l2 ; Double surface () {return (longueur * largeur) ; p. 29
30 Chapitre 5 -Le polymorphisme Public void identfie () { System.out.println(«Je suis un Rectangle») ; // fin de la classe Rectangle //Classe de test Class test_poly { Public static void main (Sring [ ] args) { Graphique g= new graphique (3,7) ; g.identifier() ; g= new Cercle (4,8,10) // compatibilité entre le type de la classe et de la classe dérivée g.identifier() ; g= new Redtangle (7,9,10,3) ; //compatibilité entre le type de la classe et de la classe dérivée g.identifier() ; Résultat de l exécution : Je suis une forme géométrique Je suis un cercle Je suis un rectangle Interprétation : Le même identificateur «g» est initialisé : o Dans la 1ére instruction avec une référence de type «graphique» o Dans l instruction 2, avec une référence de type «Cercle» o Et dans 3éme instruction, on a changé sa référence avec une référence de type «Rectangle» Ces affectations confirment la compatibilité entre un type d une classe de base et la référence d une classe dérivée. Le résultat de méthode «identifier» a changé dans chaque appel selon le type effectif de la variable «g» Les conversions explicites de références Il ya une comptabilité entre une référence à un objet d un type donné et une référence à un objet d un type ascendant. Dans le sens inverse, la compatibilité n est pas implicite. Exemple : Class graphique { Class Cercle {.... Graphique g,g1 ; Cercle c ;c1 ; C=new graphique (.) : G=new cercle (.) G1= new graphique (.) ; p. 30
31 Chapitre 5 -Le polymorphisme C1= new cercle(..) ; C1=g1 ; G1=c1, p. 31
32 Chapitre 6 Les classes abstraites et les interfaces Chapitre 6 Les classes abstraites et les interfaces 7.1. Les classes abstraites Concept des abstraites Une classe abstraite est une classe qui ne permet pas d instancier des objets, elle ne peut servir que de classe de base pour une dérivation. Dans une classe abstraite, on peut trouver classiquement des méthodes et des champs dont héritera toute classe dérivée et on peut trouver des méthodes dites «abstraites» qui fournissent uniquement la signature et le type de retour. a) Syntaxe Abstract class A { public void f() { // f est définie dans A public abstract void g (int n) ; //g est une méthode abstraite //elle n est pas définie dans A b) Utilisation A a ; // on peut déclarer une référence sur un objet de type A ou dérivé A = new A (.) : // Erreur pas d instanciation d objets d une classe abstraite Si on dérive une classe B de a qui définit les méthodes abstraites de A, alors on peut : a= new B(.) ; // juste car B n est pas une classe abstraite c) Remarques Dès qu une classe abstraite comporte une ou plusieurs méthodes abstraites, elle est abstraite, et ce même si l on n indique pas le mot clé «abstract» devant sa déclaration. Une méthode abstraite doit être obligatoirement déclarée «public», ce qui est logique puisque sa vacation est d être redéfinie dans une classe dérivée. Les noms d arguments muets doivent figurer dans la définition d une méthode abstraite public abstract void g(int) ;// Erreur : nom argument fictif est obligatoire. Une classe dérivée d une classe abstraie n est pas obligé de redéfinir toutes les méthodes abstraites, elle peut ne redéfinir aucune, mais elle reste abstraite tant qu il y a encore des méthodes abstraites non implémentées. Une classe dérivée d une classe non abstraite peut être déclarée abstraite. p. 32
33 Chapitre 6 Les classes abstraites et les interfaces d) Exemple Abstract class graphique { Private int x,y ; Graphique (int x, int y) {this.x=x ; this.y=y ; Void affiche () { System.out.println («le centre de l objet se trouve dans :»+x+ «et» +y) ; Abstract public double surface () ; // méthode abstraite // fin de la classe graphique. // Classe dérivée1 Class Cercle extends graphique { Private double rayon=1 ; Void affiche () { System.out.println («C est un cercle de rayon» + rauon) ; Super.affiche() ; Double surface () {return (rayon *2*3.14) ; // Classe dérivée 2 Class rectangle extends graphique { Private int largeur, longueur ; Rectangle (int x, int y, int l1, int l2){ Super (x,y) ; longueur= l1 ; largeur=l2 ; Double surface () { return (longeur*largeur) ; // fin de la classe Rectagle // classe de test Class test_poly2 { Public static void main (String [ ]args) { Graphique [ ] tab = new graphique [6] ; //tab [0] = new graphique (3,2) ; erreur car une classe abstraite ne //peut pas être instanciée Tab[0]=new Cercle (3,2,7) ; Tab[1]= new Cercle (10,7,3) ; Tab[2]= new Rectangle (4,7,8,6) ; Tab[3]= new Rectangle (8,10,12,10) ; Tab[4]= new Cercle (8,5,3) ; Tab[5]=new Rectangle (10,17,3,8) ; For (int i=0 ; i <=5 ; i++) { tab[i].affiche() ; Une classe abstraite peut ne comporter que des méthodes abstraites et aucun champ. Dans ce cas, elle est appelée une interface. p. 33
34 Chapitre 6 Les classes abstraites et les interfaces 7.2. Les interfaces Concept d interface Une interface est une classe abstraite n implantant aucune méthode et aucun champ (sauf les constantes). a) Définitions d une interface Public interface I{ void f(int n) ; // public abstract facultatifs void g () ; // public abstract facultatifs Toutes les méthodes d une interface sont abstraites. On peut ne pas mentionner le modificateur de visibilité (par défaut public) et le mot clé «abstract» b) Implémentation d une interface Lorsqu on définit une classe, on peut préciser qu elle impémente une interface donnée en utilisant le mot clé «impléments» Public interface I1 { Public interface I2 { Class A Implements I1, I2 {. A doit définir les méthodes de I1 et I2 c) Exemple interface Affichable { void affiche() ; class entier implements Affichable{ private int val ; public Entier (int n){val=n ; Public void affiche () ;{ System.outprintln («Je suis un entier de valeur» + val) ; class Flottant implements Affichable { private int val ; public flottant (float n) {val=n ; public void affiche () { system.out.println («Je suis un flottant de valeur» +val ; Public class testinterface { Public static void main (string [ ] args) { p. 34
35 Chapitre 6 Les classes abstraites et les interfaces Affichable [ ] tab=new Affichable [2] ; tab[0]=new Entier (25) ; tab[1]=new flottant (1.25) ; tab[0].affiche() ; tab [1].affiche ; Résultat de l exécution : Je suis un entier de valeur 25 Je suis un flottant de valeur 1.25 d) Interface et constantes Une interface peut renfermer aussi des constantes symboliques qui seront accessibles à toutes les classes implémentant l interface : public interface I{ void f (int n) ;//public abstract facultatifs void g () ; //public facultatifs static final int max=100 ; Les constantes déclarées sont toujours considérées comme «static» et «final» e) Remarques Une classe peut implémenter plusieurs interfaces (alors qu une classe ne pouvait dériver que d une seule classe abstraite). Les interfaces peuvent se dériver. Exemple1 Interface I1 {.. Interface I2 {.. Class A impléments I1 {.. Class B extends A implements I1, I2{ Exemple 2 Interface I1{ void f(int n) ; static final int max=100 ; Interface I2 e extends I1{ g (int n) ; static final int min=10 ; En fait la définition de I2 est équivalente à interface I2 { p. 35
36 Chapitre 6 Les classes abstraites et les interfaces void g(int n) ; static final int min=10 ; void f(int n) ; static final max=100 ; Exemple 3 Interface I1{ void g() ; //g est une méthodes abstraite de I1 Interface I2{ int g() ; // g est aussi une méthode abstraite de I2 Class A implements I1, I2{ /*Erreur car void g() et int g () ne peuvent pas coexister au sein de la même classe*/ p. 36
37 Chapitre 6 Les classes abstraites et les interfaces Chapitre7 Les exceptions Introduction Imaginons que nous ayons oublié une accolade fermante dans notre code Java. Il se produirait une erreur de compilation, qu on pourrait facilement corriger. Mais il se produit aussi ce qu on appelle des erreurs d exécution (run-time errors), lorsque notre programme cesse tout à coup de fonctionner correctement. Par exemple : Lecteur d un fichier qui est introuvable Division par zéro Débordement du tableau Que se passe-t-il si une fonction fait la division d un entier par zéro? Le programme s écroule-t-il en affichant un message d erreur déroulant, ou reste-t-il en vie en affichant un message compréhensible comme ; «Impossible de faire la division par zéro.? En Java, les erreurs d exécution sont appelées des exceptions et le traitement des erreurs est appelé gestion des exceptions 8.1. Traitement des exceptions Les exceptions sont traitées via des blocs try/catch qui veulent littéralement dire essayer/attraper-capturer. On exécute les instructions susceptibles de lever une exception dans le bloc try et en cas d erreur ce sont les instructions du bloc catch qui seront exécutions, pourvu qu on attrape bien l exception levée. Syntaxe : Try { // Instructions susceptibles de provoquer des erreurs ; Catch ( Type Exception 1 e) { //Instructions de traitement de l erreur ; en cas d une exception de type Exception1 Catch (TypeException2e) { // Instructions de traitement de l erreur ; en cas d une exception de Type Exception2 Catch (Exception e) { // que faire dans les autres cas Finally { //toujours passer ici, quoiqu il arrive! p. 37
38 Chapitre 7 Les exceptions Exemple public class TestException { public static void main (java.lang.string args) { int i=3 ; int j=0 ; try { System.out.println( résultat= +(i/j)) ; catch (Arithmetic Exception e) { System.out.println( erreur division par zéro ) ; 8.2. Les exceptions prédéfinies Comme Java est un langage orienté objet, une exception est manipulée comme un objet. Les classes d exceptions java se divisent en plusieurs catégories et héritent toutes de la classe Throwable. (java.lang.throwable). Cette classe dispose d un ensemble de méthodes tel que les méthodes: Getmessage() : renvoie la chaîne de caractères passé au constructeur de l exception, en principe le texte du message d erreur. ToString() : renvoie une chaîne de caractères contenant le nom de la classe et le résultat de getmessage(). Exemple : «IOException : fichier non ouvert en écriture» PrintStackTrace () : imprime sur la console l ensemble des appels parcourus par l exception Quelques exceptions prédéfinies Voici quelques exceptions prédéfinies dans Java : IOException : levée lorsqu'une erreur d'entrée/sortie se produit FileNotFoundException : levée lors d'une tentative d'accès à un fichier ou un répertoire qui n'existe pas sur le disque. ArithmeticException : levée en cas d'erreurs au cours d'une opération arithmétique (division par exemple) NumberFormatException : erreur lors de la conversion d une chaine de caractères en nombre ArrayIndexOutOfBoundsException : erreur lors de l accès à une case inexistante dans un tableau où au i éme caractère d une chaîne de caractères de taille inférieure à i Les exceptions personnalisées Pour créer son propre type d exception, il faut écrire une classe héritant de la classe Exception. Allons-y donc, créons une exception qu on appellera AgeNonValideException qu on lèvera si l utilisateur de notre programme entre un age < 0. Voici à quoi ressemble notre classe AgeNonValideException. p. 38
39 Chapitre 7 Les exceptions Public class AgeNonValideException extends Exception { //Constructeur AgeNonValideException () { Super ( L age de peut être négatif ) ; // Appelle simplement le //constructeur de la superclasse // et lui passe le message d erreur à afficher Le constructeur d initialisation d une personne doit ressembler à ce qui suit. Public personne String Nom, String prenom, int age) throws AgeNonValideException { if(age<0) throw new AgeNonValideException () ; else { this.nom=nom ; this.prenom=prenon ; this.age=age ; public class test_exception { public static void main (String arg [0]) { personne p=null ; try { p= new Personne ( Ahmed, ben Mohamed, -10) ; catch (AgeNomValideException e){ system.out.println (e.getmessage()) ; p=new personne() ; La présence de clause throws dans la signature de la méthode est obligatoire pour toute méthode qui peut lever une exception. Pour lever une exception il faut utiliser du mot clé throw suivi du type de l exception qu on instancie. p. 39
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Structure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Programmation par les Objets en Java
Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Premiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
as Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Langage Java. Classe de première SI
Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les
Java Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Généralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Une introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Chapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
INITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET
ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++
Algorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Cours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Polymorphisme, la classe Object, les package et la visibilité en Java... 1
Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....
PROGRAMMATION PAR OBJETS
PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 [email protected] B. Carré Polytech Lille 2 Java (Sun 1995)
Tp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Introduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Cours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Initiation à la programmation orientée-objet avec le langage Java
Initiation à la programmation orientée-objet avec le langage Java Pôle Informatique 2013-2014 158 cours Fauriel 42023 Saint-Étienne Cedex 02 Gauthier Picard [email protected] Institut Henri Fayol,
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Héritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5
UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques
Notions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
JAVA TD0. Prise en main du langage Environnement de base JAVA 1
JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []
Aide mémoire UML & Java 1ère partie : Introduction. [email protected]
Aide mémoire UML & Java 1ère partie : Introduction [email protected] 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................
Initiation à JAVA et à la programmation objet. [email protected]
Initiation à JAVA et à la programmation objet [email protected] O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. [email protected] www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
TD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
UE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie [email protected] 2 Programmation Impérative
Chapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Java Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd [email protected] Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
INF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Objets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Utilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
ALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
La gestion des exceptions
La gestion des exceptions Même lorsqu un programme est au point, certaines circonstances exceptionnelles peuvent compromettre la poursuite de son exécution ; il peut s agir par exemple de données incorrectes
Initiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Programmation Objet Java Correction
INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le
Claude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Chapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Auto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Apprendre Java en 154 minutes
Apprendre Java en 154 minutes Tutorial Java 1.6 - HESB-TI Stéphanie Calderara José R. Beuret Quentin Cosendey Mai 2008 Table des matières 1 Objet, classe et modificateur 3 1.1 Le premier pas..........................
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Chapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
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)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
TD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy
Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,
Programmation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Programmation en Java IUT GEII (MC-II1) 1
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)
LES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
RMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Java c est quoi? Java pourquoi?
Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 [email protected] Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle
2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3
2 e édition JAVA 5 et 6 Jérôme Bougeault TSoft et Groupe Eyrolles, 2003, 2008, ISBN : 978-2-21212250-3 Classes et objets Les constructeurs Propriétés Les méthodes L héritage Les interfaces Les relations
Conventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
CPR Informatique. (poste 3159 ou 3164) Septembre 2002
CPR Informatique (poste 3159 ou 3164) Septembre 2002 Programmer en Java Table des matières 1.- PRESENTATION GENERALE DU LANGAGE JAVA...3 1.1. Introduction...3 1.2. Historique...3 1.3. Les principales raisons
Les chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Corrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
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)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )
P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes
Programmation Objet - Cours II
Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à
I. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Bases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
TD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
UE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
ACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
UML. Diagrammes de classes (suite) Delphine Longuet. [email protected]
Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet [email protected] Opérations Opérations Service qui peut
Chap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
STAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
Cours 14 Les fichiers
Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une
TP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Programmation Orientée Objet application au langage Java Version Novembre 2007
Programmation Orientée Objet application au langage Java Version Novembre 2007 Mickaël BARON - 2007 mailto:[email protected] ou mailto:[email protected] SERLI informatique SERLI : www.serli.com
INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Solutions du chapitre 4
Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (
