Méthodes Java et programmation orientée objet de base

JavaBeginner
Pratiquer maintenant

Introduction

Ce laboratoire améliorera vos compétences en Java en vous présentant les méthodes et les bases de la programmation orientée objet (POO). Ces concepts sont essentiels pour écrire un code bien structuré, réutilisable et efficace. Nous aborderons les points suivants :

  1. La création et l'utilisation de méthodes pour organiser le code et faciliter la réutilisabilité.
  2. La compréhension des concepts de base des classes et des objets.
  3. La mise en œuvre d'une classe de base qui inclut des méthodes et des attributs.

À la fin de ce laboratoire, vous serez capable d'écrire des programmes Java qui utilisent des méthodes pour diviser des problèmes complexes en parties plus petites et plus gérables. Vous comprendrez également le fonctionnement de la programmation orientée objet en Java, une compétence essentielle pour construire des applications plus grandes et plus complexes. Si ces concepts semblent complexes au départ, ne vous inquiétez pas – nous les aborderons étape par étape, et à la fin du laboratoire, vous apprécierez comment ces idées contribuent à un code plus organisé et plus puissant.

Commençons!

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 88%. Il a reçu un taux d'avis positifs de 98% de la part des apprenants.

Comprendre et créer des méthodes

Les méthodes sont essentiellement de petits programmes au sein de votre programme principal. Elles vous aident à organiser votre code, à améliorer sa lisibilité et à permettre la réutilisation du code sans avoir à écrire le même code à plusieurs reprises. Considérez les méthodes comme des outils spécialisés dans une boîte à outils, chacun étant conçu pour un objectif spécifique.

  1. Commencez par ouvrir le fichier MethodDemo.java dans le WebIDE. Vous devriez voir ce code de démarrage :

    public class MethodDemo {
        public static void main(String[] args) {
            System.out.println("Welcome to the Method Demo!");
    
            // TODO: Call methods here
        }
    
        // TODO: Add methods here
    }

    Il s'agit de la structure fondamentale de notre programme Java. La méthode main est le point d'entrée où l'exécution de notre programme commence.

  2. Maintenant, créons notre première méthode. Nous allons créer une méthode simple qui affiche un message d'accueil. Ajoutez cette méthode en dehors et après la méthode main, au niveau de la classe :

    public class MethodDemo {
        public static void main(String[] args) {
            System.out.println("Welcome to the Method Demo!");
    
            // TODO: Call methods here
        }
    
        // Add the new method here, outside and after the main method
        public static void printGreeting(String name) {
            System.out.println("Hello, " + name + "! Welcome to Java methods.");
        }
    }

    Décomposons ce que cela signifie :

    • public : ce mot-clé indique que la méthode est accessible depuis d'autres classes.
    • static : cela signifie que la méthode appartient à la classe elle-même, et non à une instance particulière de la classe. Nous approfondirons ce concept plus tard ; pour l'instant, considérez-le comme une exigence pour les méthodes que nous voulons utiliser sans créer d'objet.
    • void : cela signifie que notre méthode ne renvoie aucune valeur. Elle effectue une action (afficher un message d'accueil), mais ne renvoie aucune donnée.
    • printGreeting : c'est le nom que nous avons attribué à notre méthode. Nous utiliserons ce nom pour invoquer ou appeler la méthode.
    • (String name) : il s'agit d'un paramètre, une donnée que notre méthode accepte. Elle attend une String (chaîne de caractères), que nous avons nommée name. Lorsque nous appellerons cette méthode, nous devrons fournir une valeur pour ce paramètre.
  3. Super ! Maintenant que nous avons créé une méthode, utilisons-la. Dans la méthode main, remplacez le commentaire // TODO: Call methods here par :

    printGreeting("Alice");
    Java method call example

    Cette ligne appelle ou invoque notre méthode printGreeting et lui transmet le nom "Alice" comme argument. L'argument fournit l'entrée spécifique dont la méthode a besoin pour effectuer son action.

  4. Enregistrez le fichier, puis compilons et exécutons le programme. Dans le terminal en bas de votre WebIDE, tapez ces commandes :

    javac ~/project/MethodDemo.java
    java -cp ~/project MethodDemo

    La première commande compile notre fichier Java, le traduisant en bytecode (code d'octet) que la Java Virtual Machine (JVM) peut comprendre. La deuxième commande exécute le programme compilé. Vous devriez voir une sortie similaire à celle-ci :

    Welcome to the Method Demo!
    Hello, Alice! Welcome to Java methods.
  5. Excellent ! Vous venez de créer et d'utiliser votre première méthode Java. Appelons-la à nouveau avec un nom différent. Ajoutez cette ligne dans la méthode main, juste après le premier appel printGreeting :

    printGreeting("Bob");
  6. Enregistrez, compilez et exécutez à nouveau le programme. Vous devriez maintenant voir :

    Welcome to the Method Demo!
    Hello, Alice! Welcome to Java methods.
    Hello, Bob! Welcome to Java methods.

    Remarquez comment nous pouvons réutiliser notre méthode avec différentes entrées ? C'est un avantage important de l'utilisation des méthodes.

  7. Maintenant, créons une méthode qui renvoie une valeur. Ajoutez cette méthode à votre classe, sous la méthode printGreeting :

    public static int sumNumbers(int a, int b) {
        return a + b;
    }

    Cette méthode accepte deux entiers, les additionne et renvoie le résultat. Notez qu'au lieu de void, nous utilisons int pour indiquer que cette méthode renvoie une valeur entière.

  8. Utilisons cette nouvelle méthode dans notre méthode main. Ajoutez ces lignes à la fin de la méthode main :

    int result = sumNumbers(5, 7);
    System.out.println("The sum of 5 and 7 is: " + result);

    Ici, nous invoquons notre méthode sumNumbers, en fournissant les valeurs 5 et 7 comme arguments. La valeur de retour de la méthode est ensuite stockée dans une variable appelée result. Après avoir stocké la valeur de retour, nous affichons la valeur dans la console.

  9. Enregistrez, compilez et exécutez le programme une fois de plus. Vous devriez maintenant voir la sortie supplémentaire :

    The sum of 5 and 7 is: 12
    Java method output example

Félicitations ! Vous avez créé et utilisé vos premières méthodes Java. Vous avez vu comment les méthodes peuvent effectuer des actions (comme afficher des messages d'accueil) et fournir des valeurs de retour (comme la somme de deux nombres). Les méthodes vous permettent de structurer votre code en éléments plus petits et réutilisables, ce qui rend vos programmes plus faciles à comprendre et à maintenir.

Introduction aux classes et aux objets

Maintenant que nous comprenons les méthodes, passons à la programmation orientée objet en créant une classe simple. En programmation orientée objet, nous utilisons les classes comme des modèles pour créer des objets. Imaginez une classe comme un emporte - pièce à biscuits et les objets comme les biscuits que vous fabriquez avec.

  1. Ouvrez le fichier Car.java et commençons à construire notre classe. Tout d'abord, nous allons définir la classe et ajouter quelques attributs :

    public class Car {
        // Attributes
        private String make;
        private String model;
        private int year;
    }

    Ces attributs (également appelés champs ou propriétés) définissent ce que chaque objet Car possédera. Chaque voiture aura une marque, un modèle et une année de fabrication.

    Le mot clé private indique que ces attributs ne peuvent être accédés qu'à l'intérieur de la classe elle - même. C'est un exemple d'encapsulation, un concept qui aide à protéger l'intégrité des données au sein de nos objets.

  2. Maintenant, ajoutons un constructeur à notre classe. Un constructeur est une méthode spéciale qui est automatiquement appelée lorsque nous créons un nouvel objet. Il est principalement utilisé pour initialiser les attributs de l'objet. Ajoutez ce constructeur à votre classe Car :

    // Constructor
    public Car(String make, String model, int year) {
        this.make = make;
        this.model = model;
        this.year = year;
    }

    Ce constructeur prend trois paramètres et les utilise pour définir les valeurs de nos attributs. Le mot clé this est utilisé pour faire référence aux attributs de l'objet actuel ; il permet de différencier l'attribut de l'objet et le paramètre passé au constructeur lorsque leurs noms sont identiques.

  3. Ensuite, ajoutons une méthode à notre classe qui affichera des informations sur la voiture. Ajoutez cette méthode à votre classe Car :

    // Method
    public void displayInfo() {
        System.out.println("Car Information:");
        System.out.println("Make: " + make);
        System.out.println("Model: " + model);
        System.out.println("Year: " + year);
    }
Java code snippet displayInfo method

Cette méthode ne prend aucun paramètre et ne renvoie aucune valeur. Elle affiche simplement les informations de la voiture dans la console.

  1. Parfait! Nous avons créé notre classe Car. Maintenant, ouvrons le fichier CarDemo.java et ajoutons le code suivant :

    public class CarDemo {
        public static void main(String[] args) {
            // We'll add code here in the next step
        }
    }

    Cela établit la structure de base de notre programme de démonstration.

  2. Maintenant, créons quelques objets Car et utilisons - les. Ajoutez ce code à l'intérieur de la méthode main :

    Car myCar = new Car("Toyota", "Corolla", 2022);
    myCar.displayInfo();
    
    Car friendsCar = new Car("Honda", "Civic", 2023);
    friendsCar.displayInfo();

    Ici, nous créons deux objets Car. Le mot clé new est utilisé pour créer un nouvel objet, et nous appelons le constructeur que nous avons défini précédemment pour définir la marque, le modèle et l'année. Ensuite, nous appelons la méthode displayInfo sur chaque objet voiture pour afficher ses propriétés.

  3. Avant de compiler et d'exécuter notre programme, il est important de noter que nous travaillons avec plusieurs fichiers Java (Car.java et CarDemo.java). Lorsque nous compilons plusieurs fichiers qui ont des dépendances, nous devons les compiler ensemble. Assurez - vous également que CarDemo.java et Car.java se trouvent dans le même répertoire ; sinon, vous devrez importer la classe Car au début de CarDemo.java comme indiqué ci - dessous.

    Si CarDemo.java et Car.java se trouvent dans des répertoires différents, vous devrez peut - être ajouter une instruction d'importation en haut de CarDemo.java :

    import packagename.Car;  // Replace 'packagename' with the actual package name if applicable

    Maintenant, compilons et exécutons le programme CarDemo :

    javac ~/project/Car.java ~/project/CarDemo.java
    java -cp ~/project CarDemo

    La première commande compile nos deux fichiers Java ensemble, en s'assurant que toutes les dépendances sont prises en compte. La deuxième commande exécute notre classe CarDemo.

    Vous devriez voir une sortie comme celle - ci :

    Car Information:
    Make: Toyota
    Model: Corolla
    Year: 2022
    Car Information:
    Make: Honda
    Model: Civic
    Year: 2023
Java program output example

Félicitations! Vous venez de créer votre première classe Java et de l'utiliser pour créer des objets. C'est la base de la programmation orientée objet en Java. Vous avez défini un modèle (la classe Car) et l'avez utilisé pour créer des instances spécifiques (les objets Car). Chaque objet a son propre ensemble unique d'attributs, mais ils partagent tous la structure et le comportement définis par la classe.

Amélioration de notre classe avec plus de méthodes

Maintenant que nous avons une compréhension de base des classes et des objets, améliorons notre classe Car avec plus de méthodes pour en augmenter l'utilité. Nous allons ajouter des méthodes qui représentent des actions qu'une voiture peut effectuer et des propriétés dont nous pourrions vouloir connaître les informations.

  1. Ouvrez le fichier Car.java. Ajoutons une méthode qui représente la voiture en accélération. Ajoutez cette méthode à la classe Car :

    public void accelerate() {
        System.out.println("The " + make + " " + model + " is accelerating.");
    }

    Cette méthode ne modifie aucun des attributs de la voiture ; elle affiche simplement un message indiquant que la voiture accélère.

  2. Maintenant, ajoutons une méthode pour le freinage. Ajoutez cette méthode à la classe Car :

    public void brake() {
        System.out.println("The " + make + " " + model + " is braking.");
    }

    Cette méthode affiche également un message concernant l'action de la voiture, tout comme la méthode accelerate précédente.

  3. Ensuite, ajoutons une méthode qui fournit des informations sur la voiture. Ajoutez cette méthode :

    public String getMakeAndModel() {
        return make + " " + model;
    }

    Cette méthode combine la marque et le modèle en une seule chaîne de caractères et la renvoie. Notez que le type de retour est String, et non void, car cette méthode nous fournit des informations.

  4. Enfin, ajoutons une méthode qui détermine si une voiture est classée comme antique. Dans de nombreux endroits, une voiture est considérée comme antique si elle a plus de 25 ans. Ajoutez cette méthode :

     public boolean isAntique() {
         int currentYear = java.time.Year.now().getValue();
         return (currentYear - year) > 25;
     }

    Cette méthode utilise la classe Year intégrée à Java pour obtenir l'année actuelle. Elle calcule ensuite l'âge de la voiture et renvoie true si elle a plus de 25 ans, et false sinon.

  5. Avec ces méthodes supplémentaires ajoutées à notre classe Car, mettons à jour notre fichier CarDemo.java pour les utiliser. Ouvrez CarDemo.java et remplacez son contenu par :

    public class CarDemo {
        public static void main(String[] args) {
            Car myCar = new Car("Toyota", "Corolla", 2022);
            Car classicCar = new Car("Ford", "Mustang", 1965);
    
            myCar.displayInfo();
            myCar.accelerate();
            myCar.brake();
    
            System.out.println(classicCar.getMakeAndModel() + " is an antique: " + classicCar.isAntique());
    
            Car[] carArray = {myCar, classicCar};
            for (Car car : carArray) {
                System.out.println(car.getMakeAndModel() + " is an antique: " + car.isAntique());
            }
        }
    }

    Cette nouvelle méthode main réalise plusieurs choses :

    • Elle crée deux objets Car : une voiture moderne et une voiture classique.
    • Elle appelle nos méthodes accelerate et brake nouvellement ajoutées sur l'objet voiture moderne.
    • Elle utilise les méthodes getMakeAndModel et isAntique sur l'objet voiture classique.
    • Elle crée un tableau d'objets Car et utilise une boucle for-each pour les parcourir, démontrant ainsi comment nous pouvons gérer des collections d'objets.
  6. Enregistrez les deux fichiers, puis compilez et exécutez le programme CarDemo :

    javac ~/project/Car.java ~/project/CarDemo.java
    java -cp ~/project CarDemo

    Vous devriez voir une sortie similaire à ceci :

    Car Information:
    Make: Toyota
    Model: Corolla
    Year: 2022
    The Toyota Corolla is accelerating.
    The Toyota Corolla is braking.
    Ford Mustang is an antique: true
    Toyota Corolla is an antique: false
    Ford Mustang is an antique: true

Félicitations! Vous avez considérablement étendu votre classe Car et créé un programme plus complexe en utilisant des objets. Cela démontre comment la programmation orientée objet peut être utilisée pour modéliser des concepts du monde réel dans le code. Chaque objet voiture possède maintenant ses propres données (marque, modèle, année) et actions (accélérer, freiner, etc.), tout comme les voitures réelles.

  1. Nous avons ajouté des méthodes à notre classe Car qui représentent des actions (accelerate() et brake()). Bien que ces méthodes ne modifient pas l'état de la voiture dans notre implémentation actuelle, dans un programme plus complexe, elles pourraient modifier des attributs tels que la vitesse ou le niveau de carburant.

  2. Nous avons ajouté getMakeAndModel(), qui combine deux informations en une seule chaîne de caractères. C'est un modèle courant en programmation orientée objet : créer des méthodes qui offrent un accès pratique aux données des objets.

  3. La méthode isAntique() montre comment les données d'un objet (l'année de la voiture) peuvent être combinées avec des informations externes (l'année actuelle) pour dériver de nouvelles informations sur un objet.

  4. Dans notre classe CarDemo, nous avons démontré comment créer et utiliser plusieurs objets, comment appeler diverses méthodes sur ces objets et comment parcourir un tableau d'objets.

Cet exemple démontre la puissance de la programmation orientée objet. Nous avons créé une classe Car qui encapsule à la fois des données (marque, modèle, année) et un comportement (accélérer, freiner, isAntique). Chaque objet Car que nous créons est indépendant, avec son propre ensemble unique de données, mais ils suivent tous le même ensemble d'actions défini par la classe.

Résumé

Dans ce laboratoire, nous avons fait des progrès considérables dans notre apprentissage de la programmation Java. Nous avons abordé des concepts de base mais essentiels qui sont la fondation pour écrire des programmes Java plus complexes et mieux organisés. Résumons ce que nous avons appris :

  1. Les méthodes :

    • Nous avons créé et utilisé des méthodes pour structurer notre code et le rendre plus réutilisable.
    • Nous avons exploré comment les méthodes peuvent accepter des paramètres et renvoyer des valeurs, ce qui nous permet de diviser des problèmes complexes en tâches plus petites et gérables.
    • Les méthodes nous aident à réduire la répétition du code et à rendre nos programmes plus faciles à comprendre et à maintenir.
  2. Les classes et les objets :

    • Nous avons introduit le concept de classes comme modèles pour créer des objets.
    • Nous avons construit une classe Car avec des attributs (marque, modèle, année) et des méthodes (displayInfo, accelerate, brake, etc.).
    • Nous avons appris à instancier des objets (instances d'une classe) et à invoquer des méthodes sur ces objets.
  3. La programmation orientée objet :

    • Nous avons observé comment la programmation orientée objet nous permet de modéliser des concepts du monde réel dans notre code.
    • Nous avons encapsulé des données (attributs) et des comportements (méthodes) dans notre classe Car.
    • Nous avons créé plusieurs objets Car, démontrant que chaque objet a son propre ensemble de données mais partage les mêmes actions définies par la classe.
  4. Fonctionnalités améliorées de la classe :

    • Nous avons étendu notre classe Car avec des méthodes plus complexes, y compris une qui utilise les outils de date intégrés à Java pour déterminer si une voiture est antique.
    • Nous avons vu comment les méthodes peuvent interagir avec les données des objets et des informations externes pour générer de nouvelles informations.
  5. Travail avec plusieurs objets :

    • Nous avons créé un tableau d'objets Car, démontrant comment travailler avec des collections d'objets dans nos programmes.

Ces concepts forment la base de la programmation Java et sont essentiels pour créer des applications plus grandes et plus complexes. Au fur et à mesure de votre progression dans l'apprentissage de Java, vous utiliserez ces concepts à plusieurs reprises.

N'oubliez pas que maîtriser la programmation nécessite une pratique régulière. Voici quelques idées pour approfondir vos connaissances :

  1. Essayez d'ajouter plus d'attributs à la classe Car, comme color ou mileage.
  2. Créez des méthodes qui modifient ces attributs, telles que paint(String newColor) ou drive(int miles).
  3. Créez une classe Garage qui peut stocker plusieurs objets Car. Ajoutez des méthodes pour ajouter des voitures au garage, en retirer et afficher toutes les voitures du garage.
  4. Expérimentez avec la création de classes pour d'autres types d'objets, tels que Book ou Student.

Continuez à coder, continuez à explorer et, surtout, continuez à vous amuser! Vous êtes sur la bonne voie pour devenir un programmeur Java compétent.