La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 77 Utilisation des classes (suite)

2 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir des constructeurs pour une classe Utiliser les variables et les méthodes de classe de manière appropriée Utiliser des initialisateurs pour initialiser les variables de classe et dinstance A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir des constructeurs pour une classe Utiliser les variables et les méthodes de classe de manière appropriée Utiliser des initialisateurs pour initialiser les variables de classe et dinstance

3 7-3 Vue d ensemble Les méthodes dinstance sont la base de lencapsulation. La technique de surcharge permet dobtenir une interface propre. Les constructeurs garantissent la création dobjets pertinents. Les méthodes dinstance sont la base de lencapsulation. La technique de surcharge permet dobtenir une interface propre. Les constructeurs garantissent la création dobjets pertinents.

4 7-4 Surcharge de méthode Dans une classe, plusieurs méthodes peuvent avoir le même nom. Elles doivent avoir des signatures différentes. Dans une classe, plusieurs méthodes peuvent avoir le même nom. Elles doivent avoir des signatures différentes. public class Movie { public void setPrice() { price = 3.50; } public void setPrice(float newPrice) { price = newPrice; } … } Movie mov1 = new Movie(); mov1.setPrice(); mov1.setPrice(3.25);

5 7-5 Initialisation simple de variables dinstance Les variables dinstance peuvent être initialisées au moment de la déclaration. Linitialisation a lieu lors de la création de lobjet. Une initialisation plus complexe doit être intégrée dans un constructeur. Les variables dinstance peuvent être initialisées au moment de la déclaration. Linitialisation a lieu lors de la création de lobjet. Une initialisation plus complexe doit être intégrée dans un constructeur. public class Movie { private String title; private String rating = "G"; private int numOfOscars = 0;

6 7-6 Constructeurs Pour une initialisation correcte, une classe doit fournir un constructeur. Un constructeur est automatiquement appelé lors de la création dun objet : –Généralement déclaré public –A le même nom que la classe –Aucun type de retour spécifié Par défaut, le compilateur fournit un constructeur "ne rien faire - pas dargument". Pour une initialisation correcte, une classe doit fournir un constructeur. Un constructeur est automatiquement appelé lors de la création dun objet : –Généralement déclaré public –A le même nom que la classe –Aucun type de retour spécifié Par défaut, le compilateur fournit un constructeur "ne rien faire - pas dargument".

7 7-7 Définition des constructeurs public class Movie { private String title; private String rating = "PG"; public Movie() { title = "Last Action …"; } public Movie(String newTitle) { title = newTitle; } Movie mov1 = new Movie(); Movie mov2 = new Movie("Gone …"); Movie mov3 = new Movie("The Good …"); La classe Movie fournit désormais deux constructeurs.

8 7-8 La référence this Les méthodes dinstance reçoivent largument this, qui fait référence à lobjet courant. Les méthodes dinstance reçoivent largument this, qui fait référence à lobjet courant. public class Movie { public void setRating(String newRating) { this.rating = newRating; } void anyMethod() { Movie mov1 = new Movie(); Movie mov2 = new Movie(); mov1.setRating("PG"); … title: null rating: null mov2 mov1 title : null rating: PG this

9 7-9 Partage de code entre les constructeurs public class Movie { private String title; private String rating; public Movie() { this("G"); } public Movie(String newRating) { rating = newRating; } Un constructeur peut appeler un autre constructeur en utilisant this(). Movie mov2 = new Movie(); Que se passe-t-il ici ?

10 7-10 title rating Les variables de classe Les variables de classe appartiennent à une classe et sont communes à toutes les instances de cette classe. Elles sont déclarées comme statiques dans les définitions de classe. Les variables de classe appartiennent à une classe et sont communes à toutes les instances de cette classe. Elles sont déclarées comme statiques dans les définitions de classe. public class Movie { private static double minPrice; // class var private String title, rating; // inst vars title rating title rating minPrice Classe Movie Objets Movie

11 7-11 Initialisation des variables de classe Les variables de classe peuvent être initialisées au moment de la déclaration. Linitialisation a lieu lorsque la classe est chargée. Les variables de classe peuvent être initialisées au moment de la déclaration. Linitialisation a lieu lorsque la classe est chargée. public class Movie { private static double minPrice = 1.29; private String title, rating; private int length = 0;

12 7-12 Méthodes de classe Les méthodes de classe sont partagées par toutes les instances. Elles sont utiles pour manipuler des variables de classe : Appelez une méthode de classe en utilisant le nom de la classe ou une référence dobjet. Les méthodes de classe sont partagées par toutes les instances. Elles sont utiles pour manipuler des variables de classe : Appelez une méthode de classe en utilisant le nom de la classe ou une référence dobjet. public static void increaseMinPrice(double inc) { minPrice += inc; } Movie.increaseMinPrice(.50); mov1.increaseMinPrice(.50);

13 7-13 Exercice pratique : Méthodes de classe ou dinstance public class Movie { private static float price = 3.50f; private String rating; … public static void setPrice(float newPrice) { price = newPrice; } public float getPrice() { return price; } Movie.setPrice(3.98f); Movie mov1 = new Movie(…); mov1.setPrice(3.98f); float a = Movie.getPrice(); float b = mov1.getPrice(); Légal ou illégal ?

14 7-14 Exemples dans Java Exemples de méthodes et de variables statiques : main() Math.sqrt() System.out.println() Exemples de méthodes et de variables statiques : main() Math.sqrt() System.out.println() public class MyClass { public static void main(String[] args) { double num, root; … root = Math.sqrt(num); System.out.println("Root is " + root); } …

15 7-15 Variables final Une variable final est une constante. Une variable final ne peut être modifiée. Une variable final doit être initialisée. Une variable final est souvent publique afin de permettre un accès externe. Une variable final est une constante. Une variable final ne peut être modifiée. Une variable final doit être initialisée. Une variable final est souvent publique afin de permettre un accès externe. public final class Color { public final static Color black=new Color(0,0,0); … }

16 7-16 Récupération de mémoire Lorsque toutes les références à un objet sont perdues, lobjet considéré est marqué pour suppression. La suppression de lobjet permet de récupérer la mémoire utilisée par ce dernier. La récupération de mémoire est automatique. Le programmeur na rien à faire, mais il ne contrôle pas le moment où la récupération de mémoire est opérée. Lorsque toutes les références à un objet sont perdues, lobjet considéré est marqué pour suppression. La suppression de lobjet permet de récupérer la mémoire utilisée par ce dernier. La récupération de mémoire est automatique. Le programmeur na rien à faire, mais il ne contrôle pas le moment où la récupération de mémoire est opérée.

17 7-17 La méthode finalize() Si un objet contient une autre ressource, telle quun fichier, il doit la libérer. Il est possible de fournir une méthode finalize() dans la classe considérée. La méthode finalize() est appelée juste avant la récupération de mémoire. Si un objet contient une autre ressource, telle quun fichier, il doit la libérer. Il est possible de fournir une méthode finalize() dans la classe considérée. La méthode finalize() est appelée juste avant la récupération de mémoire. public class Movie { … public void finalize() { System.out.println("Goodbye"); } Y a-t-il des problèmes ? Y a-t-il des problèmes ?

18 7-18 Résumé Au cours de cette leçon, vous devriez avoir retenu que : Les méthodes dinstance reçoivent une référence this à lobjet courant. Dans Java, les méthodes peuvent être surchargées. La plupart des classes fournissent un ou plusieurs constructeurs en vue de linitialisation des nouveaux objets. Les variables et les méthodes de classe peuvent être définies dans le but détablir des propriétés et un comportement régissant lensemble dune classe. Au cours de cette leçon, vous devriez avoir retenu que : Les méthodes dinstance reçoivent une référence this à lobjet courant. Dans Java, les méthodes peuvent être surchargées. La plupart des classes fournissent un ou plusieurs constructeurs en vue de linitialisation des nouveaux objets. Les variables et les méthodes de classe peuvent être définies dans le but détablir des propriétés et un comportement régissant lensemble dune classe.


Télécharger ppt "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."

Présentations similaires


Annonces Google