TD 1 IJA Introduction Objet, méthode, attribut Classe, instance

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Spécialisation/généralisation Héritage Polymorphisme.
Spécialisation/généralisation Héritage Polymorphisme
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction à la Programmation Orientée Objet Langage Java
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
Stéphane Frénot - - Dpt Télécommunications IJA20 JAVA Le cœur du langage.
Packages et résolution de noms
JAV – TD 3 bibliothèques standards composition
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
IJA - TD 2 Bases du langage
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Principes de programmation (suite)
Introduction à la Programmation Orientée Objet Langage Java
Programmation orientée objet
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Langage Oriente Objet Cours 4.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
POO : Objets et classes (Rappels)
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Programmation concurrente
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
IFT 6800 Atelier en Technologies d’information
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Cours 4 Héritage (suite).
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Informatique et science du numérique
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
La notion de type revisitée en POO
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Tutorat en bio-informatique
Réaliser par: Sadok Amel Cheboui hassiba
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Strings et Tableaux en Java
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
LES CLASSES ET LES OBJETS
Transcription de la présentation:

TD 1 IJA Introduction Objet, méthode, attribut Classe, instance Règles de base du nommage Mes premiers programmes

Introduction Langages de programmation Interprétés Compilés Java visual basic (VB), basic, shells (bash, ksh, tcsh, sh), perl, tcl-tk, python, ruby, java, c#, awk ++ code peut tourner sans modifications sur toute machine ayant un interpréteur, ++ pas d’étape de compilation donc pas de gestion d’1 version par plate-forme cible, -- parfois un peu plus lent à l’exécution, -- chaque machine doit avoir un interpréteur, --qualité exécution fonction de qualité interpréteur Compilés C, C++, pascal ++parfois plus rapide à l’exécution, ++/--code non modifiable, --doit gérer une version compilée par plate-forme cible Java compilé (en un langage intermédiaire unique) puis interprété write once, run everywhere

Enfin mon premier programme main(String [] arg) public class HelloWorld { public static void main(String [] arg){ System.out.println("Hello, World !"); } HelloWorld HelloWorld.java Compilateur javac HelloWorld.java HelloWorld HelloWorld.class On n’explique pas le mot-clé static (séance 2) String arg[] rapidos si questions il y a => y ’a un exo dessus en seance 3 ils ont vu argc arv en C par contre, on explique compilateur, machine virtuelle Machine Virtuelle java HelloWorld

L'environnement de travail Sous linux un shell avec vi pour écrire les sources java un shell pour compiler un shell pour exécuter les 3 shells positionnés dans le même répertoire (on fera mieux dans les séances suivantes) 1 répertoire par projet /exo 1 fichier source par classe nom fichier = NomClasse.java par conséquent, 1 fichier compilé par classe Exo 1-1 : faire HelloWorld, compiler (debugger of course!), lancer

Objet Morceau de programme UNIFIE ayant des attributs des méthodes Représentés par des valeurs données à l'objet Représentent un état de l'objet des méthodes qui permettent de manipuler ces attributs fonctions que l'objet sait faire Représentent le comportement de l'objet PremièreLettreEnMinusculePuisPremiereEnMajuscule Exo 1-2 : définir sur papier plusieurs instances de différents cercles et différentes manières de les exprimer listeCours() 180 m 80 kg "Durand" getNom() Eleve Duran d att nom, prenom, n°Etudiant, classement, tableau de notes, poids, datenaiss, tableau des cours suivis methodessetNom, setPrenom, getNom, getPrenom, addNote, getMoyenne, getClassement, setClassement, getAge, listeCours.. NB : pas d ’att moyenne car calculé! Connexion une Connexoin att: un login, un password, un site de connexion methodes:setters & getters, connect, disconnect

Classe Usine de fabrication d'objets Permet de définir le comportement des objets de cette classe signature et code des méthodes la structure de l’état des objets de cette classe liste et type des attributs (mais pas leurs valeurs) PremièreLettreEnMajusculePourChaqueMot Exo 1-3 : créer une classe Cercle vide. Compiler

Création d'un objet = instanciation Pour pouvoir manipuler un objet, on déclare une référence de type la classe de cet objet Circle c; //c est une référence qui va me permettre de manipuler un objet de la classe Circle Pour créer un objet, on instancie une classe en appliquant l'opérateur new. Une nouvelle instance de cette classe est alors allouée en mémoire : c = new Circle(); //je fabrique un objet Circle et je le référence par c Circle() est une méthode particulière appelée constructeur ; elle a exactement le même nom que la classe Exo 1-4 : Utilisez la classe cercle à partir de la classe HelloWorld

Classe - exemple et exo public class Circle { private double x, y, r; public void affiche(){ System.out.println( "x=" +this.x+"y=" +this.y+ "r=" +this.r); } public double getPerimeter(){ return(Math.PI*2*this.r); public double getArea(){ return (Math.PI*this.r*this.r); public void initialiser(int x1, int y1, int r1){ this.x=x1; this.y=y1;this.r=r1; Noter que les méthodes n ’ont pas de paramètre référence de l ’objet… on n ’appelle jamais une méthode dans le vide, on demande à un objet particulier de l ’exécuter, et il connaît son état! => d ’où le mot-clé THIS (pas obligatoire cf getperimeter et getarea) En profiter pour expliquer private/public Exo 1-5 : Ecrire et utiliser la classe cercle suivante

Constructeur Tout objet doit avoir ses valeurs positionnées. Un constructeur peut permettre de fixer ces valeurs à la création de l'objet (attention les structures de données sont de toutes façons reservées en mémoire) Un constructeur est une méthode qui possède le même nom que la classe, mais qui ne renvoie rien Si le programmeur n’écrit pas de constructeur, le compilateur crée un constructeur par défaut, implicite (sans paramètre et avec corps vide). Une classe peut avoir plusieurs constructeurs qui diffèrent par le nombre et la nature de leurs paramètres. Exo 1-6 : définir différents constructeurs pour la classe Cercle et supprimer la fonction d'initialisation. Compiler et exécuter

DANGER : Attribut != Variable Les attributs sont relatifs aux objets leur liste est définie dans la classe chaque objet a une valeur pour chaque attribut l’objet s’en souvient tout le temps il faut les utiliser avec “this” devant leur nom Les variables sont relatives à une méthode Elles sont définies dans une méthode leur valeur change d’un appel de la méthode à l’autre //suite classe Circle void zoom(int r){ for(int i=1 ; i <= r ; i++){ r=r*2; } Exo 1-7 : Intégrer cette fonction dans votre classe cercle que ce passe-t'il et pourquoi ?

Standard de nommage et de représentation graphique (UML) Classe PremièreLettreEnMajusculePourChaqueMot rectangle Attribut et méthode premièreLettreEnMinusculePuisPremiereEnMajusculePourChaque Mot rectangles accrochés sous la classe (facultatifs) + pour public / - pour private Objet rectangle, référence soulignée Exo 1-8 : Représenter les classes Cercle et HelloWorld NomClasse -attUn -attDeux -methUn() +methDeux() referenceObjet

Hello World version 2 La première version ne possède pas de constructeur Définir un constructeur dans la classe HelloWorld qui se charge d’écrire la phrase ("Hello, World !"); Modifier la méthode écrite en version 1 pour qu’elle instancie un objet de la classe HelloWorld Compiler (et deboguer of course!), lancer

Mon second programme Ecrire le code d’une classe DivisionO comportant des méthodes permettant de diviser des floats entre eux (2 façons de faire…lequelles) Compiler (et deboguer of course!) Ecrire le code d'une classe Client, utilisant une classe DivisionO Lancer le programme NB : faites les 2 façons!! Les 2 façons : avec 2 paramètres à chaque méthode et 0 attribut avec 0 paramètres, et 2attributs dans la classe, à positionner avant d ’appeler la méthode expliquer ue c ’est un exemple bidon,que bien sûr en vrai il suffit de faire /!!!

Classe Circle V1 Saisir le code de la classe Circle, comme donné dans la diapo 5 (c’est-à-dire sans constructeur), compiler (et deboguer of course!) Ecrire une classe TestCircle qui contient une méthode public static void main(String[] arg). Cette méthode crée un objet Circle et affiche les coordonnées, la surface et le périmètre de l’objet créé. Compiler(et deboguer of course!), lancer Pourquoi TestCircle réussit-il à créer un objet Circle alors qu’il n’y a pas de constructeur? Quels sont les valeurs des attributs x,y,r de l’objet créé?

Classe Circle suite V2 Modifier la classe Circle en lui ajoutant les 2 constructeurs public Circle(double lx, double ly, double lr) et public Circle(Circle c). Compiler cette classe (et deboguer of course!), lancer, conclusion? V3 Ajouter le troisième constructeur de la classe Circle, compiler, lancer Modifier la classe TestCircle pour qu’elle crée 3 cercles différents (un par constructeur, donner des valeurs à x,y et r différentes de 0) et affiche leurs caractéristiques. Compiler, lancer V2 message: java.lang.Error: Unresolved compilation problem: The constructor Circle() is undefined at TestCircle.main(TestCircle.java:28) Exception in thread "main"