カスタムメソッド — まとめ

Java の入出力とストリーム

Alex Liu

Software Development Engineer

概念の統合

  • 次を組み合わせて活用:
    • 列挙型(Enum)
    • 日付と時刻
    • 再帰
  • 目標: 明確で再利用可能、保守しやすいメソッドの作成

  • 例:

    • EC サイト
      • 実用的な OrderStatus と追跡メソッド
      • ロイヤルティ割引アルゴリズム
Java の入出力とストリーム

メソッド付き Enum の定義

  • 注文状態を表す OrderStatus 列挙型を定義
enum OrderStatus {
    PLACED("Order placed successfully"),
    DELIVERED("Order delivered");

private final String message; OrderStatus(String message) { this.message = message; } public String getMessage() { return message; } }
Java の入出力とストリーム

日付操作のカスタムメソッド

  • orderDate から配送予定日を見積もる
    • .plusDays() で日付に日数を加算
import java.time.LocalDate;

public class OrderUtils {
    public static LocalDate estimateDelivery(LocalDate orderDate, 
                                            int daysToDeliver) {
        return orderDate.plusDays(daysToDeliver);
    }
}
Java の入出力とストリーム

割引の再帰メソッド

  • リワード方針: リピーターに月ごと加算の割引
    • 累積割引を再帰で計算:
public class DiscountCalculator {
    public static double cumulativeDiscount(int months) {
        if (months <= 0) return 0;
        return 5 + cumulativeDiscount(months - 1); // $5 discount per month
    }
}
Java の入出力とストリーム

カスタムオブジェクト

  • すべての注文情報を持つ Order クラスを作成
    • 重要情報: iddatecurrent status
class Order {
    int orderId;
    OrderStatus orderStatus;
    LocalDate orderDate;

    Order(int orderId, LocalDate orderDate) {
        this.orderId = orderId;
        this.orderDate = orderDate;
        this.orderStatus = orderStatus;
    }
Java の入出力とストリーム

toString() を持つ Customer オブジェクト

  • 社員が読み取り・処理しやすい形で注文を表示したい
    • Order オブジェクトの表示方法を定義する toString() を作成
public String toString() {
        return "Order[id=" + orderId + ", date=" + orderDate + "]";
    }
}
  • .toString() 呼び出し時の出力例:
    Order[id=10015, date=2025-03-19]
    
Java の入出力とストリーム

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); } }
Java の入出力とストリーム

Main メソッド — 出力

  • 次の情報で新規注文が作成されたときに Main が実行されます:
    • ユーザーはすでに3か月購読
    • 配送見積りは7日
    • 初期の注文ステータスは PLACED
Order[id=101, date=2025-03-09]
Estimated Delivery: 2025-03-16
Order placed successfully
Total Discount: $15.0
Java の入出力とストリーム

Passons à la pratique !

Java の入出力とストリーム

Preparing Video For Download...