Skip to content

zehraseren/FundamentalsOfOOPWithCSharp

Repository files navigation

👩🏼‍💻 C# İLE OOP (Object-Oriented Programming) TEMELLERİ

Murat Yücedağ'ın C# ile OOP Temelleri online kursundan, OOP üzerine eğitim aldığım, öğrenirken yaptığım projenin reposudur.


OOP Eğitimi ve Agriculture Yönetim Uygulaması

Bu repo, Object-Oriented Programming (OOP) ve katmanlı mimari yapısını öğrenmek isteyenler için iki farklı projeyi içermektedir. Birinci proje, OOP prensiplerini ve temel kavramları örneklerle öğretmeyi amaçlayan bir OOP Konu Anlatımı içermektedir. İkinci proje ise, Agriculture Yönetim Uygulaması olarak çiftlik yönetim sistemini OOP ve katmanlı mimari yapısını kullanarak geliştirmeyi hedefler.

Proje İçerikleri

1. OOP Konu Anlatımı Projesi

Bu bölüm, OOP temellerini öğrenmek isteyenler için tasarlanmıştır. Projede, sınıf, nesne, metot, kalıtım ve kapsülleme gibi OOP prensipleri örneklerle anlatılmaktadır.

✨İçerik:

  1. Sınıf (Class) ve Nesne (Object)
  • Sınıf: Nesnelerin yapısını ve davranışını tanımlayan şablonlardır. Sınıflar, OOP'nin en temel yapı taşları olup, belirli özellikleri ve metotları içerir.
  • Nesne: Sınıftan türetilen ve belirli özelliklerle donatılan bireysel örneklerdir. Projede, çeşitli sınıflar tanımlanarak nesneler oluşturulmuştur ve bu nesnelerle işlemler yapılmıştır.
  1. Metotlar ve Nesne Davranışları
  • Metotlar, sınıflar içinde tanımlanan ve nesnelerin belirli işlevleri gerçekleştirmesini sağlayan işlevlerdir. Metot tanımlama, parametre kullanımı ve dönüş değerleri projede örneklendirilmiştir.
  1. Kalıtım (Inheritance) ve Polimorfizm (Polymorphism)
  • Kalıtım: Bir sınıfın başka bir sınıftan özellik ve davranış devralması sürecidir. Kalıtım, kodun yeniden kullanımını artırır ve daha esnek bir yapı sağlar. Projede, alt sınıflar oluşturarak üst sınıflardan özellik devralma işlemleri gösterilmiştir.

  • Polimorfizm: Nesnelerin farklı bağlamlarda farklı şekillerde davranabilmesi özelliğidir. Metotların üzerine yazılması (override) ve aşırı yüklenmesi (overload) gibi polimorfizm teknikleri örneklendirilmiştir.

  1. Kapsülleme (Encapsulation) ve Erişim Belirleyiciler
  • Kapsülleme: Sınıflardaki verilerin korunmasını sağlayarak dışarıdan doğrudan erişimi kısıtlar. Kapsülleme sayesinde, veriler sınıf içindeki belirli metotlarla erişilebilir hale gelir.

  • Erişim Belirleyiciler: Public, private, protected gibi erişim belirleyiciler ile veri ve metotların erişim seviyelerini ayarlanır.

  1. Soyutlama (Abstraction)
  • Soyutlama: Gereksiz detaylardan kaçınıp sadece önemli özellikleri öne çıkarmayı sağlayan bir kavramdır. Soyutlama sayesinde, bir sınıfın karmaşık yapısını gizleyerek daha sade ve anlaşılır bir yapı kurulur. Projede soyut sınıflar (abstract classes) ve arayüzler (interfaces) kullanarak uygulamalı olarak bu kavram gösterilmiştir.
  1. Kod Örnekleri ve Açıklamalar Projedeki her bir kavram için açıklamalı kod örnekleri bulunmaktadır. Bu örneklerle konuları adım adım öğrenip, her bir OOP prensibini pratiğe dökerek kendi proje geliştirilmiştir.

2. Agriculture (Tarım Yönetimi) Uygulaması

Bu proje, bir çiftlik yönetim sistemine yönelik olarak geliştirilmiştir. Çiftlik ürünlerinin ve stokların kaydını tutan, yönetimini sağlayan bir uygulama olarak OOP ve katmanlı mimari prensiplerine göre tasarlanmıştır.

✨Özellikler:

  • OOP Tabanlı Yapı: Sınıf ve nesne kavramlarını kullanarak tarım ürünleri, stok yönetimi gibi bileşenleri temsil eden nesnelerle çalışır.
  • SQL Veri Tabanı İşlemleri: Ürün kayıtlarını yönetmek için Select, Insert, Update, Delete gibi SQL DML komutları kullanılır.
  • Prosedür ve Tetikleyici: Veri tabanı üzerinde tetikleyici ve prosedür yazarak ürün hareketlerini kontrol edebilme.
  • Katmanlı Mimari: Entity, Business Logic ve Facade gibi katmanlar üzerinden katmanlı yapı ile yönetim sağlanır.
  • Veri Tablosu Optimizasyonu: Çiftlik ürünleri ve stok bilgilerini en uygun veri türleriyle saklayarak verimli veri tabanı yönetimi sağlanır.

✨Proje Görselleri:

Ekran görüntüsü 2024-11-06 230917 Ekran görüntüsü 2024-11-06 205729 Ekran görüntüsü 2024-11-06 205741 Ekran görüntüsü 2024-11-06 205759 Ekran görüntüsü 2024-11-06 210407 Ekran görüntüsü 2024-11-06 213928 Ekran görüntüsü 2024-11-06 213940 Ekran görüntüsü 2024-11-06 214121 Ekran görüntüsü 2024-11-06 214136 Ekran görüntüsü 2024-11-06 214146 Ekran görüntüsü 2024-11-06 214156 Ekran görüntüsü 2024-11-06 214209