Tutorat en bio-informatique

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
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
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
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)
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Algorithme et programmation
Chapitre III Héritage (début)
Principes de programmation (suite)
Programmation orientée objet
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
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.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
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.
Classes abstraites et Interfaces
POO : Objets et classes (Rappels)
Langage Oriente Objet Cours 2.
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é.
Structures de données IFT-2000
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
Introduction au paradigme orienté-objet (suite)
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 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Types de données abstrait et mécanismes d'encapsulation
Chapitre III Héritage. POO-L3 H. Fauconnier2 Chapitre III: Héritage A) Extensions généralités Affectation et transtypage B) Méthodes Surcharge et signature.
Cours 4 Héritage (suite).
COURS DE PROGRAMMATION ORIENTEE OBJET :
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é.
Plan cours La notion de pointeur et d’adresse mémoire.
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
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
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.
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.
Les types composés Les enregistrements.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
Master 1 SIGLIS Jave Lecteur Stéphane Tallard Chapitre 5 – Correction TD.
LES CLASSES ET LES OBJETS
Cours N°4 Mohamed El Hacen Mohamed Dyla Institut professionnel universitaire 1.
Transcription de la présentation:

Tutorat en bio-informatique 5 février 2013

Au programme… Les classes et les objets Attributs Constructeurs Méthodes

Les classes Les classes ne servent pas uniquement à englober des fonctions main public class MonProgramme { public static void main (String[] args) System.out.println("Ceci est mon programme."); … }

Les classes Les classes peuvent également servir de modèles pour la définition d'objets public class MonObjet { (attributs) (constructeurs) (méthodes d'instance) (variables et fonctions statiques de classe) }

Les objets On dit d'un objet en particulier qu'il s'agit d'une instance d'une classe En effet, un objet est une instance qui se conforme au modèle d'une classe (qui possède les propriétés définies dans la classe)

Les attributs On appelle attributs les variables non statiques qui sont déclarées dans une classe Chaque instance d'une classe (objet) possèdera une valeur spécifique pour chacun de ses attributs C'est ce qui fait que chaque objet est différent (tout en faisant partie de la même classe)

Les attributs Afin de les retrouver facilement dans le code, on déclare habituellement les attributs au tout début de la classe L'affectation se fait normalement dans le constructeur ou dans une méthode d'instance On doit indiquer le droit d'accès (public ou private) dans la déclaration. public class Table { public int largeur; public int longueur; public int hauteur; … }

Les attributs Un objet composite est un objet qui ne possède rien d'autre que des attributs Les objets composites servent uniquement à regrouper des informations

Les attributs Les attributs public sont accessibles dans toutes les classes En supposant qu'on a déjà instancié un objet Table nommé t, on peut accéder à ses attributs public en écrivant t.attribut : t.largeur = 35; int temp = t.longueur; System.out.println("Hauteur = " + t.hauteur);

Les attributs Les attributs private sont accessibles seulement à l'intérieur de la classe dans laquelle ils ont été déclarés Comme on le verra plus tard, des méthodes public devront être définies afin de lire ou de modifier les attributs private à partir d'une autre classe Les objets composites ne peuvent donc pas avoir d'attributs private

Les attributs Il est recommandé d'utiliser des attributs private plutôt que public Les attributs private vous permettent de protéger les valeurs des attributs afin qu'elles ne soient pas modifiées par erreur Avec des attributs private, seules les méthodes de l'objet ont la possibilité de modifier leur état

Les variables static de classe On peut déclarer dans une classe des variables qui ne seront pas spécifiques à chaque instance (contrairement aux attributs) : les variables static de classe Il peut s'agir de constantes ou de variables, mais l'utilisation de variables static de classe est peu recommandé

Les variables static de classe public class Table { //Constante: public static final int NB_PATTES = 4; //Variable static de classe: private static int nbTables = 0; private int largeur; private int longueur; private int hauteur; … }

Constructeurs La déclaration d'un objet se fait comme celle d'un type primitif : int nombre; //type Table t; //objet L'instanciation se fait à l'aide de constructeurs : Table t = new Table(); //appel au constructeur

Constructeurs Un constructeur doit être défini de cette façon : public NomDeLaClasse(arguments) { … } Un constructeur doit (normalement) être public, sinon il sera impossible de créer une instance de cette classe en dehors de la classe

Constructeurs Comme pour les fonctions, il est possible de créer plusieurs constructeurs, en autant que les paramètres soient différents public class Table { private static int nbTables = 0; private int largeur, longueur, hauteur; public Table() //Premier constructeur sans argument largeur = 10; longueur = 10; hauteur = 10; nbTables++; System.out.println("Une table a été crée!"); } public Table(int largeur, int longueur, int hauteur) //Deuxième constructeur avec arguments this.largeur = largeur; this.longueur = longueur; this.hauteur = hauteur;

Constructeurs Le constructeur suivant est fourni par défaut par le compilateur dans le cas où aucun constructeur n'a été défini dans une classe : public NomDeLaClasse() {} Ce constructeur ne fait rien, mais permet tout de même d'instancier des objets Ce constructeur par défaut disparaît dès qu'un constructeur (peu importe sa signature) est défini dans la classe

Constructeurs javac Test.java cannot find symbol constructor Table() public class Table { private static int nbTables = 0; private int largeur, longueur, hauteur; public Table(int largeur, int longueur, int hauteur) this.largeur = largeur; this.longueur = longueur; this.hauteur = hauteur; nbTables++; } public class Test { public static void main (String[] args) Table t = new Table(); } javac Test.java cannot find symbol constructor Table()

Fonctions dans une classe Dans une classe, on peut avoir des méthodes private et des méthodes public. À quoi correspond chacun de ces genres de méthodes? Une méthode private est une méthode qui ne pourra être appelée qu’à l’intérieur de cette classe. Une méthode public peut être appelée à l’extérieur de la classe.

Fonctions dans une classe Dans une classe, on peut avoir des méthodes static et non static public static void printText(String text) { System.out.println(text); } public void printAttribut() System.out.println("La valeur de l'attribut est : " + attribut);

Fonctions dans une classe Les méthodes static ne s'appliquent pas sur des instances. Elles n'ont pas accès aux attributs. Elles peuvent être utilisées à l'intérieur même de la classe (comme vous les avez utilisées jusqu'à maintenant) ou à l'extérieur (comme les fonctions de la classe Math par exemple). Appel à l'extérieur de la classe : Classe.methodeStatique();

Fonctions dans une classe Les méthodes non static s'appliquent uniquement sur des instances d'objets. Elles sont les seules qui ont accès aux attributs. Appel à l'extérieur de la classe : instance.methodeDinstance(); Appel à l'intérieur de la classe et dans un contexte non static : methodeDinstance(); this.methodeDinstance();

Copie d’un objet On ne peut pas copier des objets (et des tableaux) de la même façon que des types primitifs : int a = 55; int b = a; //Erreur logique! Table t = new Table(1, 2, 3); Table t2 = t; De cette façon, on ne fait qu'obtenir 2 pointeurs vers la même instance! Adresse mémoire t Largeur (1) Longueur (2) Hauteur (3) t2

Copie d’un objet Pour copier correctement un objet (ou un tableau), il faut créer un nouvel objet qui aura les mêmes valeurs d’attributs (ou les mêmes valeurs dans les cases du tableau) On peut créer une fonction static ou non statique pour copier des objets

Copie d’un objet public class Table { private static int nbTables = 0; private int largeur, longueur, hauteur; … public Table copy() //Non static return new Table(largeur, longueur, hauteur); } public static Table copy(Table t) //Static return new Table(t.largeur, t.longueur, t.hauteur);

Copie d’un objet Exemples d'appels aux fonctions : public class Test { public static void main(String[] args) Table t1 = new Table(1, 2, 3); Table t2 = t1.copy(); //Non static Table t3 = Table.copy(t1); //Static }

Comparaison de deux objets La comparaison suivante compare uniquement les références (comme pour les String) et non pas les valeurs des attributs : if (t1 == t2) Afin de vérifier si deux objets sont identiques, il faut plutôt vérifier si les valeurs de leurs attributs sont identiques

Les objets Les objets sont en quelques sortes des types que vous créez Les objets peuvent donc être employés comme : attributs paramètres valeurs de retour

Objets comme paramètres Avec les types primitifs, on passe en paramètre une copie de la valeur Avec les objets (et les tableaux), on passe en paramètre une copie de la référence

Objets comme paramètres Si on modifie les attributs du paramètre formel, les attributs du paramètre actuel sont modifiés aussi Si on modifie la référence du paramètre formel, on ne modifie pas la référence du paramètre actuel

Objets comme paramètres public class Table { private static int nbTables = 0; private int largeur, longueur, hauteur; … public static void modifieReference(Table t) t = new Table(5, 5, 5); } La fonction modifieReference n'aura aucun effet sur le paramètre actuel

Saisir et modifier des attributs Lorsque les attributs sont private, on doit créer des fonctions public get() et set() pour permettre de saisir ou de modifier la valeur d’un attribut Ces méthodes seront accessibles dans toutes les classes et permettront d’obtenir ou de modifier la valeur de l’attribut

Saisir et modifier des attributs public class Table { private int largeur; private int longueur; private int hauteur; public int getLargeur() return largeur; //ou this.largeur; } public void setLargeur(int largeur) this.largeur = largeur;

Saisir et modifier des attributs Si on crée une méthode : public setLargeur(int largeur) on permet de modifier la largeur de la table n’importe où dans le programme Si on ne veut pas que l’attribut soit modifiable suite à la création de celui-ci, on ne doit pas créer de fonction set Si on veut créer un attribut non modifiable, on doit l'initialiser dans le constructeur