कस्टम मेथड्स - सबको साथ लाना

Java में इनपुट/आउटपुट और स्ट्रीम्स

Alex Liu

Software Development Engineer

कॉन्सेप्ट्स का इंटिग्रेशन

  • साथ में उपयोग करें:
    • Enums
    • Date और Time
    • Recursion
  • लक्ष्य: स्पष्ट, पुन: उपयोगी, और मेंटेन करने योग्य methods बनाना

  • उदाहरण प्रोग्राम:

    • एक e-commerce साइट
      • व्यावहारिक OrderStatus सिस्टम, ऑर्डर ट्रैकिंग मेथड्स के साथ
      • loyalty डिस्काउंट एल्गोरिदम.
Java में इनपुट/आउटपुट और स्ट्रीम्स

मेथड्स वाले Enum की परिभाषा

  • ऑर्डर स्टेट्स दर्शाने के लिए OrderStatus Enum परिभाषित करें
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 में इनपुट/आउटपुट और स्ट्रीम्स

Date ऑपरेशंस के लिए कस्टम मेथड

  • orderDate का उपयोग करके अनुमान लगाएँ कि ऑर्डर ग्राहक तक कब डिलीवर होगा
    • .plusDays() मेथड किसी तारीख में दिन जोड़ता है
import java.time.LocalDate;

public class OrderUtils {
    public static LocalDate estimateDelivery(LocalDate orderDate, 
                                            int daysToDeliver) {
        return orderDate.plusDays(daysToDeliver);
    }
}
Java में इनपुट/आउटपुट और स्ट्रीम्स

डिस्काउंट के लिए recursive मेथड

  • रिवॉर्ड पॉलिसी: वापसी करने वाले ग्राहकों के लिए महीने-दर-महीने डिस्काउंट बढ़ाएँ
    • संचयी डिस्काउंट निकालने के लिए recursive मेथड उपयोग करें:
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 क्लास बनाएँ जो ऑर्डर से जुड़ी सारी जानकारी रखे
    • जैसे id, date और current 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 ऑब्जेक्ट

  • हम ऑर्डर को ऐसे प्रिंट करना चाहते हैं कि कर्मचारी के लिए पढ़ना/प्रोसेस करना आसान हो
    • toString() मेथड परिभाषित करें कि Order ऑब्जेक्ट कैसे प्रिंट होगा।
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 दिन है
    • Order status शुरू में PLACED होगा
Order[id=101, date=2025-03-09]
Estimated Delivery: 2025-03-16
Order placed successfully
Total Discount: $15.0
Java में इनपुट/आउटपुट और स्ट्रीम्स

अभ्यास करते हैं!

Java में इनपुट/आउटपुट और स्ट्रीम्स

Preparing Video For Download...