Günümüzde nesne tabanlı programlama (OOP), yazılım geliştirme sürecinde kodun daha düzenli, tekrar kullanılabilir ve sürdürülebilir olmasını sağlamak için yaygın olarak kullanılmaktadır. Bu makalede, C# dilinde Araba sınıfı kullanarak OOP prensiplerinin nasıl uygulandığını ve bu sınıfın Windows Forms arayüzü ile nasıl entegre edildiğini inceleyeceğiz.
Proje Tanıtımı
Bu örnekte, bir arabanın temel özelliklerini ve işlevlerini simüle eden bir Araba sınıfı oluşturacağız. Ardından, bu sınıfı kullanarak bir Windows Forms arayüzü tasarlayacak ve kullanıcıların araba çalıştırma, hızlanma, yavaşlama ve durdurma işlemlerini gerçekleştirmelerini sağlayacağız.

Sınıf Tasarımı: Araba
Araba sınıfı, bir arabanın temel özelliklerini ve işlevlerini kapsüllemek için aşağıdaki şekilde tasarlanmıştır:
Özellikler:
Marka
: Arabanın markasını tutar.Model
: Arabanın modelini tutar.SonHiz
: Arabanın ulaşabileceği maksimum hızı belirler.CalisiyorMu
: Arabanın çalışıp çalışmadığını gösteren bir boolean değişkenidir.AnlikHiz
: Arabanın o anki hızını tutar.
Metotlar:
ArabayiCalistir()
: Araba çalışmıyorsa çalıştırır, aksi halde zaten çalıştığını bildirir.ArabayiDurdur()
: Araba duruyorsa motoru durdurur, hareket halindeyken durdurmayı engeller.Hizlan(int hiz)
: Arabanın hızını artırır, ancakSonHiz
değerini geçmemesini sağlar.Yavasla(int hiz)
: Arabanın hızını azaltır ve hızın negatif olmamasını kontrol eder.
Araba Sınıfı Kodları
Aşağıda, Araba sınıfının C# ile nasıl yazıldığını görebilirsiniz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | using System; namespace ClassArabaOrnek { internal class Araba { string marka; string model; int sonHiz; bool calisiyorMu = false; int anlikHiz = 0; public string Marka { get => marka; set => marka = value; } public string Model { get => model; set => model = value; } public int SonHiz { get => sonHiz; set => sonHiz = value; } public bool CalisiyorMu { get => calisiyorMu; set => calisiyorMu = value; } public int AnlikHiz { get => anlikHiz; set => anlikHiz = value; } public Araba(string marka, string model, int sonHiz) { Marka = marka; Model = model; SonHiz = sonHiz; } public string ArabayiCalistir() { if (!CalisiyorMu) { CalisiyorMu = true; return "Araba çalıştırıldı."; } else { return "Araba zaten çalışıyor."; } } public string ArabayiDurdur() { if (anlikHiz == 0) { CalisiyorMu = false; return "Araba durduruldu."; } else { return "Araba hareket halindeyken aracı durduramazsınız!!"; } } public string Hizlan(int hiz) { if (CalisiyorMu) { AnlikHiz += hiz; if (AnlikHiz > SonHiz) { AnlikHiz = SonHiz; } return $"Araba hızlandı. Anlık Hız: {AnlikHiz} km/h"; } else { return "Önce arabayı çalıştırmalısınız!"; } } public string Yavasla(int hiz) { if (CalisiyorMu) { AnlikHiz -= hiz; if (AnlikHiz < 0) { AnlikHiz = 0; } return $"Araba yavaşladı. Anlık Hız: {AnlikHiz} km/h"; } else { return "Önce arabayı çalıştırmalısınız!"; } } } } |
Windows Forms Uygulaması
Bu sınıfı kullanarak bir Windows Forms arayüzü tasarlayacağız. Kullanıcılar; arabayı çalıştırma, hızlanma, yavaşlama ve durdurma işlevlerini arayüzdeki butonlar ile gerçekleştirecek.
Form Tasarımı:
Form üzerinde 4 buton ve bir label bulunuyor:
btnCalistir
: Arabayı çalıştırmak için.btnHizlan
: Arabayı hızlandırmak için.btnYavasla
: Arabayı yavaşlatmak için.btnDurdur
: Arabayı durdurmak için.lblDurum
: Arabanın durumunu göstermek için.
Form1 Kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | using System; using System.Windows.Forms; namespace ClassArabaOrnek { public partial class Form1 : Form { private Araba benimArabam; public Form1() { InitializeComponent(); benimArabam = new Araba("Toyota", "Corolla", 200); GuncelleDurum("Uygulama başlatıldı."); } private void GuncelleDurum(string mesaj) { lblDurum.Text = $"{mesaj}\n\n" + $"Marka: {benimArabam.Marka}, Model: {benimArabam.Model}\n" + $"Anlık Hız: {benimArabam.AnlikHiz} km/h\n" + $"Durum: {(benimArabam.CalisiyorMu ? "Çalışıyor" : "Kapalı")}"; } private void btnCalistir_Click(object sender, EventArgs e) { string mesaj = benimArabam.ArabayiCalistir(); GuncelleDurum(mesaj); } private void btnHizlan_Click(object sender, EventArgs e) { string mesaj = benimArabam.Hizlan(5); GuncelleDurum(mesaj); } private void btnYavasla_Click(object sender, EventArgs e) { string mesaj = benimArabam.Yavasla(5); GuncelleDurum(mesaj); } private void btnDurdur_Click(object sender, EventArgs e) { string mesaj = benimArabam.ArabayiDurdur(); GuncelleDurum(mesaj); } } } |
Proje Özeti ve Sonuç
Bu makalede, C# dilinde Araba sınıfı oluşturarak nesne tabanlı programlamanın temel prensiplerini uyguladık. Ayrıca bu sınıfı Windows Forms arayüzü ile entegre ederek kullanıcıların aracı interaktif bir şekilde kontrol edebilmesini sağladık.
Bu örnek, OOP mantığını anlamak ve sınıfların pratikte nasıl kullanılacağını öğrenmek için harika bir başlangıç noktasıdır. Daha gelişmiş özellikler ekleyerek projeyi genişletebilirsiniz.
Geliştirme Fikirleri:
- Yakıt tüketimi hesaplama özelliği eklemek.
- Farklı araba modelleri ve özellikleri ekleyerek çoklu nesne kullanımı sağlamak.
- Arabanın bakım durumunu ve kilometre bilgisini tutarak daha gerçekçi bir simülasyon yapmak.