Fondamentaux et Pratiques des Méthodes en Dart
Sommaire
- 1- Introduction
- 2- Fonctions vs Méthodes
- 2.1- Différence entre les fonctions et les méthodes
- 2.1.1- Les fonctions
- 2.1.2- Les méthodes
- 2.2- Importance des méthodes dans la programmation orientée objet
- 3- Déclaration et Appel de Méthodes
- 3.1- Syntaxe de déclaration des méthodes
- 3.2- Appel de méthodes depuis la classe et depuis une instance
- 3.2.1- Appel depuis la Classe (Méthodes Statiques) :
- 3.2.2- Appel depuis une Instance (Méthodes d'Instance) :
- 3.2.3- Différenciation entre Méthodes Statiques et d'Instance :
- 3.2.4- Utilisation des Paramètres dans les Méthodes :
- 4- Types de Méthodes en Dart
- 4.1- Méthodes d'Instance
- 4.1.1- Définition et utilisation des méthodes d'instance
- 4.1.2- Accès aux propriétés de l'objet à l'intérieur de la méthode
- 4.2- Méthodes Statiques
- 4.2.1- Définition et utilisation des méthodes statiques
- 4.2.2- Comparaison avec les méthodes d'instance
- 4.2.3- Cours Dart
-
Introduction
- Les méthodes sont des blocs de code qui peuvent être appelés à partir d’autres parties du programme. Elles sont utilisées pour regrouper des tâches ou des opérations liées, et pour rendre le code plus facile à lire et à maintenir.
-
Fonctions vs Méthodes
-
Différence entre les fonctions et les méthodes
-
Les fonctions
- Une fonction est un bloc de code qui peut être appelé à partir d’autres parties du programme. Elle est utilisée pour regrouper des tâches ou des opérations liées, et pour rendre le code plus facile à lire et à maintenir.
- Exemple
- Application
- Les fonctions peuvent être utilisées dans une variété d’applications, telles que :
- La modularisation du code : les fonctions permettent de regrouper des tâches ou des opérations liées, ce qui facilite la compréhension et la maintenance du code.
- La réutilisation du code : les fonctions peuvent être réutilisées dans différents endroits du programme, ce qui permet de gagner du temps et des efforts.
- La simplification du code : les fonctions peuvent être utilisées pour simplifier le code en regroupant des tâches complexes.
-
Les méthodes
- Une méthode est une fonction qui est déclarée dans une classe. Elle est utilisée pour définir le comportement d’une classe.
- Exemple
- Application
- Les méthodes sont essentielles à la programmation orientée objet. Elles permettent de définir le comportement des classes, et elles sont utilisées pour interagir avec les objets.
- Voici un tableau qui résume les principales différences entre les fonctions et les méthodes :
Importance des méthodes dans la programmation orientée objet
- Les méthodes sont essentielles à la programmation orientée objet. Elles permettent de définir le comportement des classes, et elles sont utilisées pour interagir avec les objets.
- Les méthodes offrent plusieurs avantages dans la programmation orientée objet :
- Modularisation du code : les méthodes permettent de regrouper des tâches ou des opérations liées, ce qui facilite la compréhension et la maintenance du code.
- Réutilisation du code : les méthodes peuvent être réutilisées dans différents endroits du programme, ce qui permet de gagner du temps et des efforts.
- Simplicité du code : les méthodes peuvent être utilisées pour simplifier le code en regroupant des tâches complexes.
- Les méthodes permettent également de rendre le code plus flexible et adaptable. Par exemple, les méthodes peuvent être utilisées pour ajouter de nouvelles fonctionnalités aux classes sans modifier le code existant.
- En conclusion, les méthodes sont un outil puissant qui permet de structurer le code et de le rendre plus facile à lire, à maintenir et à adapter.
Déclaration et Appel de Méthodes
Syntaxe de déclaration des méthodes
- En Dart, la déclaration d'une méthode suit la syntaxe suivante :
- returnType : Type de la valeur renvoyée par la méthode. Utilisez void si la méthode ne renvoie rien.
- methodName : Nom de la méthode.
- parameter1, parameter2, ... : Paramètres que la méthode peut prendre.
- Exemple :
-
Appel de méthodes depuis la classe et depuis une instance
- Les méthodes peuvent être appelées soit depuis la classe elle-même (méthodes statiques), soit depuis une instance de la classe (méthodes d'instance).
-
Appel depuis la Classe (Méthodes Statiques) :
-
Appel depuis une Instance (Méthodes d'Instance) :
- Notez que pour appeler une méthode d'instance, vous devez d'abord créer une instance de la classe.
-
Différenciation entre Méthodes Statiques et d'Instance :
- Les méthodes statiques sont appelées directement à partir de la classe.
- Les méthodes d'instance sont appelées à partir d'une instance de la classe.
-
Utilisation des Paramètres dans les Méthodes :
- Les paramètres de la méthode (a et b dans cet exemple) sont utilisés à l'intérieur du corps de la méthode.
-
Types de Méthodes en Dart
-
Méthodes d'Instance
-
Définition et utilisation des méthodes d'instance
- Les méthodes d'instance sont liées à une instance spécifique de la classe.
- Elles peuvent accéder et manipuler les propriétés de l'objet auquel elles appartiennent.
- Elles sont déclarées sans le mot-clé static.
- Exemple :
-
Accès aux propriétés de l'objet à l'intérieur de la méthode
- Les méthodes d'instance peuvent accéder aux propriétés de l'objet en utilisant le mot-clé
this
. -
Méthodes Statiques
-
Définition et utilisation des méthodes statiques
- Les méthodes statiques sont liées à la classe plutôt qu'à une instance particulière.
- Elles sont déclarées avec le mot-clé static.
- Elles ne peuvent pas accéder aux propriétés non statiques de la classe directement.
-
Comparaison avec les méthodes d'instance
- Les méthodes statiques sont appelées sur la classe elle-même, tandis que les méthodes d'instance sont appelées sur une instance particulière de la classe.
- Les méthodes statiques n'ont pas accès aux propriétés non statiques de la classe sans passer par des paramètres.
void maFonction() {
// Code de la fonction
}
class MaClasse {
void maMethode() {
// Code de la méthode
}
}
La principale différence entre les fonctions et les méthodes est que les méthodes sont déclarées dans des classes. Cela signifie que les méthodes ont accès aux propriétés et aux méthodes de la classe dans laquelle elles sont déclarées.
Caractéristique | Fonction | Méthode |
---|---|---|
Localisation | Peut être déclarée n’importe où dans le code | Doit être déclarée dans une classe |
Accessibilité aux propriétés et aux méthodes | N’a pas accès aux propriétés et aux méthodes des classes | A accès aux propriétés et aux méthodes de la classe dans laquelle elle est déclarée |
Exemple |
|
|
returnType methodName(parameter1, parameter2, ...) {
// Code de la méthode
}
class MaClasse {
void afficherMessage(String message) {
print(message);
}
}
class MaClasse {
static void methodeStatique() {
print("Méthode statique");
}
}
void main() {
MaClasse.methodeStatique(); // Appel depuis la classe
}
class MaClasse {
void methodeInstance() {
print("Méthode d'instance");
}
}
void main() {
MaClasse instance = MaClasse();
instance.methodeInstance(); // Appel depuis une instance
}
class Calculatrice {
int additionner(int a, int b) {
return a + b;
}
}
void main() {
Calculatrice calc = Calculatrice();
int resultat = calc.additionner(2, 3);
print(resultat); // Affiche : 5
}
class Person {
String name;
// Méthode d'instance
void introduceYourself() {
print('Bonjour, je m\'appelle $name.');
}
}
void main() {
var person = Person();
person.name = 'Alice';
person.introduceYourself(); // Affiche "Bonjour, je m'appelle Alice."
}
class Rectangle {
double width, height;
double calculateArea() {
return this.width * this.height;
}
}
void main() {
var rect = Rectangle();
rect.width = 5;
rect.height = 10;
print('L\'aire du rectangle est : ${rect.calculateArea()}'); // Affiche "L'aire du rectangle est : 50.0"
}
class MathOperations {
// Méthode statique
static int add(int a, int b) {
return a + b;
}
}
void main() {
var result = MathOperations.add(3, 5);
print('La somme est : $result'); // Affiche "La somme est : 8"
}
class Calculator {
// Méthode d'instance
int add(int a, int b) {
return a + b;
}
// Méthode statique
static int multiply(int a, int b) {
// Impossible d'accéder à des propriétés non statiques ici
return a * b;
}
}
void main() {
var calc = Calculator();
print(calc.add(2, 3)); // Appel d'une méthode d'instance
print(Calculator.multiply(2, 3)); // Appel d'une méthode statique
}