Méthodes personnalisées - Tout rassembler

Entrées/Sorties et flux en Java

Alex Liu

Software Development Engineer

Intégrer les concepts

  • Combiner et utiliser :
    • Enums
    • Date et heure
    • Récursion
  • Objectif : créer des méthodes claires, réutilisables et faciles à maintenir

  • Programme exemple :

    • Un site e-commerce
      • avec un système OrderStatus pratique et des méthodes de suivi
      • avec un algorithme de remise fidélité.
Entrées/Sorties et flux en Java

Définir un Enum avec des méthodes

  • Définir l'Enum OrderStatus pour représenter les états de commande
enum OrderStatus {
    PLACED("Order placed successfully"),
    DELIVERED("Order delivered");

private final String message; OrderStatus(String message) { this.message = message; } public String getMessage() { return message; } }
Entrées/Sorties et flux en Java

Méthode personnalisée pour les dates

  • Utiliser orderDate pour estimer la date de livraison au client
    • La méthode .plusDays() ajoute des jours à une date donnée
import java.time.LocalDate;

public class OrderUtils {
    public static LocalDate estimateDelivery(LocalDate orderDate, 
                                            int daysToDeliver) {
        return orderDate.plusDays(daysToDeliver);
    }
}
Entrées/Sorties et flux en Java

Méthode récursive pour la remise

  • Politique de récompense : remises croissantes chaque mois pour fidéliser les clients
    • Utiliser une méthode récursive pour calculer la remise cumulée :
public class DiscountCalculator {
    public static double cumulativeDiscount(int months) {
        if (months <= 0) return 0;
        return 5 + cumulativeDiscount(months - 1); // $5 discount per month
    }
}
Entrées/Sorties et flux en Java

Objet personnalisé

  • Créer une classe Order qui contient toutes les informations de commande
    • Inclut des infos clés comme id, date et statut actuel.
class Order {
    int orderId;
    OrderStatus orderStatus;
    LocalDate orderDate;

    Order(int orderId, LocalDate orderDate) {
        this.orderId = orderId;
        this.orderDate = orderDate;
        this.orderStatus = orderStatus;
    }
Entrées/Sorties et flux en Java

Objet client avec méthode toString()

  • Nous voulons afficher la commande de façon lisible et exploitable par l'employé
    • Définir la méthode toString() pour contrôler l'affichage d'Order.
public String toString() {
        return "Order[id=" + orderId + ", date=" + orderDate + "]";
    }
}
  • Exemple de sortie via .toString() :
    Order[id=10015, date=2025-03-19]
    
Entrées/Sorties et flux en Java

Méthode main

public class Main {
    public static void main(String[] args) {
        Order order = new Order(101, LocalDate.now());
        System.out.println(order.toString());

LocalDate delivery = OrderUtils.estimateDelivery(order.orderDate, 7); System.out.println("Estimated Delivery: " + delivery); System.out.println(OrderStatus.PLACED);
double discount = DiscountCalculator.cumulativeDiscount(3); System.out.println("Total Discount: $" + discount); } }
Entrées/Sorties et flux en Java

Méthode main - sortie

  • Cette méthode main s'exécute lorsqu'une nouvelle commande est passée avec :
    • L'utilisateur est abonné depuis 3 mois
    • Le délai de livraison estimé est de 7 jours
    • Le statut initial sera PLACED
Order[id=101, date=2025-03-09]
Estimated Delivery: 2025-03-16
Order placed successfully
Total Discount: $15.0
Entrées/Sorties et flux en Java

Passons à la pratique !

Entrées/Sorties et flux en Java

Preparing Video For Download...