Özel metotlar - Hepsini bir araya getirme

Java'da Girdi/Çıktı ve Akışlar

Alex Liu

Software Development Engineer

Kavramları bütünleştirme

  • Birleştirin ve kullanın:
    • Enum'lar
    • Tarih ve Saat
    • Özyineleme
  • Amaç: açık, yeniden kullanılabilir ve bakımı kolay metotlar yazmak

  • Örnek program:

    • Bir e-ticaret sitesi
      • sipariş takibi metotları olan pratik OrderStatus sistemiyle
      • sadakat indirimi algoritmasıyla.
Java'da Girdi/Çıktı ve Akışlar

Metotlu Enum tanımlama

  • Sipariş durumlarını temsil etmek için OrderStatus Enum tanımlayın
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'da Girdi/Çıktı ve Akışlar

Tarih işlemleri için özel metot

  • orderDate kullanarak müşteriye teslim tarihini tahmin edin
    • .plusDays() metodu verilen tarihe gün ekler
import java.time.LocalDate;

public class OrderUtils {
    public static LocalDate estimateDelivery(LocalDate orderDate, 
                                            int daysToDeliver) {
        return orderDate.plusDays(daysToDeliver);
    }
}
Java'da Girdi/Çıktı ve Akışlar

İndirim için özyinelemeli metot

  • Ödül politikası: Sadık müşterileri ödüllendirmek için ay bazında artan indirim
    • Kümülatif indirimi hesaplamak üzere özyinelemeli metot kullanın:
public class DiscountCalculator {
    public static double cumulativeDiscount(int months) {
        if (months <= 0) return 0;
        return 5 + cumulativeDiscount(months - 1); // $5 discount per month
    }
}
Java'da Girdi/Çıktı ve Akışlar

Özel nesne

  • Tüm sipariş bilgilerini içeren bir Order sınıfı oluşturun
    • Siparişe ait temel bilgiler: id, tarih ve geçerli durum.
class Order {
    int orderId;
    OrderStatus orderStatus;
    LocalDate orderDate;

    Order(int orderId, LocalDate orderDate) {
        this.orderId = orderId;
        this.orderDate = orderDate;
        this.orderStatus = orderStatus;
    }
Java'da Girdi/Çıktı ve Akışlar

toString() metotlu Customer nesnesi

  • Siparişi, çalışanın kolayca okuyup işlem yapacağı biçimde yazdırmak istiyoruz
    • Order nesnesinin nasıl yazdırılacağını tanımlamak için toString() metodunu ekleyin.
public String toString() {
        return "Order[id=" + orderId + ", date=" + orderDate + "]";
    }
}
  • .toString() çağrısının örnek çıktısı:
    Order[id=10015, date=2025-03-19]
    
Java'da Girdi/Çıktı ve Akışlar

Main metodu

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'da Girdi/Çıktı ve Akışlar

Main metodu - çıktı

  • Bu main metodu, aşağıdaki bilgilerle yeni bir sipariş verildiğinde çalışır:
    • Kullanıcı 3 aydır abonedir
    • Tahmini teslim süresi 7 gündür
    • Sipariş durumu başlangıçta PLACED olacaktır
Order[id=101, date=2025-03-09]
Estimated Delivery: 2025-03-16
Order placed successfully
Total Discount: $15.0
Java'da Girdi/Çıktı ve Akışlar

Hadi pratik yapalım!

Java'da Girdi/Çıktı ve Akışlar

Preparing Video For Download...