Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.

Slides:



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

Spécialisation/généralisation Héritage Polymorphisme.
Le mécanisme des exceptions
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.
Introduction à Java - les paquetages -
C.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
PHP5 poo.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Principes de programmation (suite)
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Programmation orientée objet
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.
Principes de programmation (suite)
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.
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é.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
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)
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Package IFT1025 Jian-Yun Nie.
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).
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é.
Récursion IFT1025: Programmation 2 Jian-Yun Nie. Définition Le fait pour un programme ou une méthode de s'appeler lui-même. Par exemple –Définir la notion.
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.
Travaux Pratiques Représentation des connaissances
JavaScript Nécessaire Web.
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Cours n°3 rappels. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double a = 5.6d ; double b =
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
La notion de type revisitée en POO
Propriétés. Propriétés ► Les propriétés peuvent être visibles dans les environnements de scripts ► Les propriétés peuvent être accédées par programmation.
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
ESA Ecole Supérieure des Affaires Ernaelsten Gérard - Frédéric FiléePage 285 Cours de Programmation Web : PHP Chapitre 5 : Orienté objet en PHP.
11/04/ L'héritage Cours 7 Cours 7.
7ième Classe (Mardi, 24 novembre) CSI2572. Devoir 3 ?
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Cours 7 Classes locales Clonage Divers: tableaux.
Tutorat en bio-informatique
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.
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 Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
LES CLASSES ET LES OBJETS
Transcription de la présentation:

Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité

Cours 62 Plan du cours 6 Les problèmes de sécurité Le problème de la visibilité Visibilité des variables Principe de travail Durée de vie Valeurs initiales Le mot this Le mot static Champ static Méthode static Un principe de conception d’une méthode

Cours 63 Les problèmes de sécurité Les différents langages de programmation offrent plus ou moins de sécurité en raison de la façon dont ils mettent en œuvre certains problèmes. Citons quelques points.  L’absence de règles strictes relatives aux conversions de types lors des affectations.  La manipulation directe d’adresses par le langage. En Java, pas de pointeurs explicites.  La gestion des erreurs et cas exceptionnels (débordement d’indice, division par zéro, gestion de ES…). En Java : les exceptions.  Le domaine de visibilité des variables.

Cours 64 Le problème de la visibilité Si une variable est accessible de partout, problèmes… Solution : restreindre la visibilité.

Cours 65 Visibilité ou portée Domaine dans lequel une variable est utilisable. Un identificateur défini dans un bloc n’est en principe utilisable que dans ce bloc. Mais il y a quelques différences selon qu’il s’agit d’un identificateur de variable, de classe, de méthode. Java règle ces problèmes grâce aux mots public, protected et private.

Cours 66 Visibilité des variables En Java : pas de variable globale. On distingue :  Les variables d’instance,  Les variables locales,  Les variables de classe. private objectif : restreindre l’accès  Sécurité public est l’attribut par défaut.

Cours 67

8 Principe de travail L’objectif : restreindre la visibilité  déclarer private. Créer éventuellement des méthodes d’accès aux variables : les méthodes traditionnellement appelées get… ou set…

Cours 69 Durée de vie Une variable locale ou un paramètre formel n’existent plus quand on quitte la méthode. Un objet est détruit quand il n’est plus référencé (par ex on met son handle à null).

Cours 610 Valeurs initiales Les variables non initialisées sont aussi une cause fréquente d’erreurs dans les programmes. Java règle ce problème :  Variables d’instance. Les nombres : 0, les booléens : false, les handles : null.  Variables locales : ne sont pas initialisées. Au programmeur de la faire.

Cours 611 Le mot this Plusieurs emplois this désigne l’objet courant. this(...) permet d’appeler un autre constructeur.

Cours 612 Lorsqu’un paramètre formel porte le même nom qu’une variable d’instance, comment les distinguer ? On utilise this.

Cours 613 Lorsque dans un constructeur on veut appeler un autre constructeur, on utilise this(…);

Cours 614 Le mot static  Champ static Lorsque l’interpréteur Java rencontre le mot static devant un champ, il crée un emplacement unique pour ce champ. Exemple:

Cours 615 class P { static int nb;// variable de classe int x;// variables d’instance int y; // méthodes… } Dans une autre classe on crée : Pp1 = new P() ; et P p2 = new P() ;

Cours 616 Il est alors logique que l’on accède au champ nb en utilisant le nom de classe : P.nb car le champ static n’appartient pas à un objet particulier p1 ou p2 mais à tous les objets de la classe P. Il est cependant toléré d’y accéder en utilisant le nom d’un objet : p1.nb (à éviter).

Cours 617  Méthode static Une méthode static est commune à tous les objets de la classe, elle n’appartient pas à un objet particulier. C’est pour cela qu’il est cohérent de l’appeler en utilisant le nom de la classe : NomDeClasse.nomDeMéthode(…) ; On dit alors logiquement que c’est une méthode de classe en opposant ce terme à méthode d’instance (appelée comme ceci nomDObjet.nomDeMéthode(…)).

Cours 618 Très important Une méthode static ne possède pas de paramètre implicite (pas de this) car elle ne travaille pas sur une instance. Puisqu’une telle méthode n’appartient pas à un objet, elle ne doit pas se référer aux champs (non static) d’un objet.

Cours 619 Vocabulaire à retenir Variable d’instance, variable de classe, variable locale. Méthode d’instance, méthode de classe. Méthode accesseur, get, set private, public, static

Cours 620 Un principe de conception d’une méthode Ne pas mêler calculs et ES public int som(int x, int y) { System.out.println(x+y) ;// mauvais return x + y ;; }

Cours 621  Une méthode peut modifier de l'objet auquel elle appartient mais ne doit pas en principe modifier l'état d'un objet transmis. Ex le tableau note. Sinon, effet de bord. public moyenne(double[ ] note} {…} La méthode ne doit pas modifier le tableau note  Les méthodes dont le nom commence par set (setVisible, setColor…) modifient l'état de l'objet. (règle d'usage Java)  Les méthodes dont le nom commence par get sont des accesseurs (getColor…).