Tek Mesajı Görüntüle
Old 20 Aralık 2023, 12:17   #1
Çevrimdışı
 
IRCDForum Kullanıcısının Avatarı

Kayıt Tarihi: 28 Kasım 2023
Üye No: 1
Cinsiyet: Erkek
Konular: 296
Mesajlar: 311
Nerden:
Meslek:
IRC:
Aldığı Beğeni: 19
Beğendikleri: 13
@IRCDForum
Varsayılan Nesne Yönelimli Programlama(OOP)

Nesne Yönelimli Programlama, yazılımla uğraşan herkesin bilmesi gereken en önemli konulardan biridir. İlk olarak başlamak gerekirse, bu programlama yaklaşımında her şeyi bir nesne olarak ele alırız. Örneğin, bir araba düşünelim ve bu arabanın özellikleri olsun: rengi, modeli vb. Programımızda kullanılacak bu arabanın özelliklerini bir sınıf içinde tanımlarız. Sonrasında, o sınıfı hangi sınıflarda kullanacaksak, orada bir nesne örneğini alırız. Böylece her seferinde değişkenleri tanımlamaktan ve kodu uzatmaktan kurtuluruz. Bu programlama yaklaşımını kullanarak maliyeti, zamanı ve çabayı azaltırız. Peki, nedir bu nesne yönelimli programlama ve bize sağladığı faydalar nelerdir?

Nesne Yönelimli Programlamanın Faydaları​
  • Sadece bir sınıf oluştururuz ve projemizin geri kalan tüm dosyalarında o sınıfı kullanabiliriz.
  • Sınıfın bir kez yazılması sayesinde gereken maliyeti, zamanı ve çabayı azaltıyoruz.
  • Sınıflar sayesinde eğer bir değişiklik yapmak istersek, sadece o sınıfta değişiklik yapmamız yeterli oluyor
Sınıf Nedir?​

Değişkenler ve metotları bir başlık altında saklayan bir sistemdir. Örnek olarak daha önce bahsettiğim araba sınıfının C# dilinde yazılmış bir örneği:


Kod
public class Araba
{
    public string Renk { get; set; }
    public string Model { get; set; }
    public int Fiyat { get; set; }

    public void Calistir()
    {
        Console.WriteLine("Araba çalıştı");
    }

    public void Durdur()
    {
        Console.WriteLine("Araba durdu");
    }
}


Nesne Yönelimli Programlamanın Özellikleri Nelerdir?​

Birçok özelliği vardır. Bunlardan dört temel özelliği şunlardır:
  • Inheritance (Kalıtım): Kalıtım, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını miras almasını sağlar. Miras alınan sınıf, temel özellikleri kalıtım yapan sınıf tarafından kullanılabilir ve bu sayede kodun tekrarını önler. Alt sınıflar, üst sınıflardan gelen özellikleri genişletebilir veya üzerine ek özellikler ekleyebilir.
  • Polymorphism (Çokbiçimlilik): Polimorfizm, aynı isme sahip metotların farklı şekillerde çalışabilmesini ifade eder. Yani aynı isimli metotlar farklı sınıflar tarafından farklı şekillerde uygulanabilir. Bu sayede, aynı türden farklı nesneleri bir arada kullanmak ve bu nesnelerin farklı davranışlarını yönetmek mümkün olur.
  • Abstraction (Soyutlama): Soyutlama, karmaşık sistemleri basitleştirmek ve sadece gerekli olan bilgileri ortaya çıkarmak amacıyla kullanılır. Soyutlama, bir sınıfın yalnızca gerekli özelliklerini ve davranışlarını belirtirken diğer detayları gizler. Bu sayede, programcılar karmaşık sistemleri daha kolay anlayabilir ve kullanabilir.
  • Encapsulation (Kapsülleme): Nesne yönelimli programlamada, veri ve ilgili işlevselliği bir araya getirerek kapsülleme sağlanır. Bir sınıf içinde değişkenler ve bu değişkenlere erişimi kontrol eden metotlar (get/set) bir arada bulunur. Bu sayede verilerin gizliliği korunur ve dışarıdan doğrudan erişim engellenir.Kapsülleme sayesinde, bir sınıfta tasarladığımız özelliklerin hangi sınıflarda kullanılabileceğini kontrol edebiliriz. Örneğin, bir özelliği private olarak tanımlayarak sadece o sınıf içinde kullanılmasını sağlayabiliriz. Bunun için programlama diline göre erişim belirleyicilerini kullanmamız gerekir. C# dilindeki erişim belirleyiciler şunlardır:
private: Bir özelliği private olarak tanımlayarak, o özelliğe sadece kendi sınıfı içinden erişilebilmesini sağlarız.
public: Bir özelliği public olarak tanımlayarak, o özelliğe herhangi bir yerden erişilebilir olmasını sağlarız.
protected: Bir özelliği protected olarak tanımlamak, o özelliğe bulunduğu sınıf ve ondan türetilen diğer sınıflar içinden erişilebilir olmasını sağlar.
internal: Bir özelliği internal olarak tanımlamak, aynı program içerisinden erişilebilir, fakat farklı bir program içerisinden erişilemez olmasını sağlar.
Bu erişim belirleyicileri, bir sınıfın içindeki özelliklerin ve metotların hangi düzeyde erişilebilir olacağını kontrol etmek için kullanılır.

c# dilinde Inheritance (Kalıtım) ve Polymorphism (Çokbiçimlilik) örneği :


Kod
public class Araba
{
public string Renk { get; set; }
public string Model { get; set; }
public int Fiyat { get; set; }


public virtual void Calistir()
{
Console.WriteLine("Araba çalıştı");
 }


public virtual void Durdur()
{
Console.WriteLine("Araba durdu");
}
}


public class Otomobil : Araba
{
public override void Calistir()
{
Console.WriteLine("Otomobil çalıştı");
 }


public override void Durdur()
{
Console.WriteLine("Otomobil durdu");
}
}


public class Kamyon : Araba
{
public override void Calistir()
{
Console.WriteLine("Kamyon çalıştı");
 }


public override void Durdur()
{
Console.WriteLine("Kamyon durdu");
}
}


class Program
{
static void Main(string[] args)
{
Araba araba1 = new Otomobil();
Araba araba2 = new Kamyon();


araba1.Calistir(); // Otomobil çalıştı
araba2.Calistir(); // Kamyon çalıştı


araba1.Durdur(); // Otomobil durdu
araba2.Durdur(); // Kamyon durdu
}
}


 
Alıntı ile Cevapla

5 SON KONULAR by IRCDForum
KONU Forum Son Post Cevaplar Görüntüleme Son Post Tarih Saat
Nesne Yönelimli Programlama(OOP) Programlama IRCDForum 0 1 20 Aralık 2023 12:17
2024 KPSS Ortaöğretim, Ön Lisans, Lisans, DHBT... KPSS IRCDForum 0 1 13 Aralık 2023 13:07
"Dune 2"den Yeni Fragman: Arrakis Savaşa... Sinema IRCDForum 0 1 13 Aralık 2023 13:02
“Nefes: Yer Eksi İki” Filminden Yeni fragman! Sinema IRCDForum 0 1 13 Aralık 2023 12:57
Samsung Galaxy S24 serisi ile görücüye çıkacak! Samsung IRCDForum 0 1 13 Aralık 2023 10:29