3.1 OOP

C++'da Nesne Yönelimli Programlama (OOP), nesneleri ve sınıfları kullanarak programların daha esnek, yapılandırılmış ve yönetilebilir olmasını sağlayan bir programlama paradigmasıdır. C++'ın OOP özellikleri, yazılımcıların daha karmaşık ve ölçeklenebilir uygulamalar geliştirmesine olanak tanır. C++'da OOP'nin dört temel prensibi vardır:

  1. Kapsülleme (Encapsulation): C++'da kapsülleme, verileri ve bu verilere yönelik işlevleri bir arada tutarak, nesnelerin iç yapısını dışarıdan gizlemeyi sağlar. Bu, veri güvenliğini artırır ve kodun daha düzenli olmasına yardımcı olur. Kapsülleme, genellikle "public", "private" ve "protected" erişim belirleyicileri ile uygulanır.

    class BankaHesabi {
    private:
        double bakiye; // Kapsüllenmiş veri
    
    public:
        void paraYatir(double miktar) { // Public metot
            bakiye += miktar;
        }
    
        double bakiyeGoster() { // Public metot
            return bakiye;
        }
    };
  2. Soyutlama (Abstraction): C++'da soyutlama, karmaşık sistemlerin basitleştirilmesini ve sadece önemli özelliklerin görünür hale getirilmesini sağlar. Kullanıcı, bir nesnenin detaylarıyla değil, yalnızca işlevselliği ile etkileşimde bulunur. Soyutlama genellikle arayüzler ve soyut sınıflar ile gerçekleştirilir.

    class Sekil { // Soyut sınıf
    public:
        virtual void ciz() = 0; // Saf sanal fonksiyon
    };
    
    class Daire : public Sekil {
    public:
        void ciz() override { // Override ile soyut fonksiyonun implementasyonu
            // Daire çizme kodu
        }
    };
  3. Miras (Inheritance): Miras, bir sınıfın (alt sınıf) başka bir sınıftan (üst sınıf) özelliklerini ve işlevselliğini miras almasını sağlar. Bu, kod tekrarını azaltır ve yeni sınıfların oluşturulmasını kolaylaştırır. C++'da miras, "public", "protected" veya "private" erişim belirleyicileri ile yapılabilir.

    class Hayvan { // Üst sınıf
    public:
        void ye() {
            // Yeme işlemi
        }
    };
    
    class Kopek : public Hayvan { // Alt sınıf
    public:
        void havla() {
            // Havlama işlemi
        }
    };
  4. Polimorfizm (Polymorphism): Polimorfizm, aynı isimdeki fonksiyonların farklı nesneler üzerinde farklı şekillerde çalışabilmesini sağlar. Bu, genellikle sanal fonksiyonlar ve işaretçilerle gerçekleştirilir.

    void sesCikar(Hayvan* hayvan) {
        hayvan->sesCikar(); // Polimorfik çağrı
    }

C++'da OOP, yazılım geliştirmede daha modüler ve esnek bir yaklaşım sağlar. Nesne yönelimli programlama ile, yazılımcılar daha kolay bakım yapılabilir ve genişletilebilir yazılımlar geliştirebilirler. C++'ın sunduğu OOP özellikleri sayesinde, karmaşık sistemlerin yönetimi ve geliştirilmesi daha etkili hale gelir.

Last updated