C++ programlamanın temel amacı, nesne yönelimi kavramını C programlama diline tanıtmaktır.
Nesneye Yönelik Programlama gibi birçok kavramı sağlayan bir paradigmadır. kalıtım, veri bağlama, polimorfizm vb.
Her şeyin bir nesne olarak temsil edildiği programlama paradigması, gerçek nesne yönelimli programlama dili olarak bilinir. sohbet ilk gerçek nesne yönelimli programlama dili olarak kabul edilir.
OOP'ler (Nesneye Yönelik Programlama Sistemi)
Nesne kalem, sandalye, masa vb. gibi gerçek bir kelime varlığı anlamına gelir. Nesne yönelimli programlama sınıfları ve nesneleri kullanarak bir program tasarlamaya yönelik bir metodoloji veya paradigmadır. Bazı kavramları sağlayarak yazılım geliştirmeyi ve bakımını basitleştirir:
arduino'da baud hızı
- Nesne
- Sınıf
- Miras
- Polimorfizm
- Soyutlama
- Kapsülleme
Nesne
Durumu ve davranışı olan her varlık nesne olarak bilinir. Örneğin: sandalye, kalem, masa, klavye, bisiklet vb. Fiziksel ve mantıksal olabilir.
Sınıf
Nesnelerin toplanması sınıf denir. Mantıksal bir varlıktır.
C++'daki Sınıf, Nesneye Yönelik programlamaya yol açan temel öğedir. Kullanıcı tanımlı veri türünün veri üyelerine ve üye işlevlerine erişmek ve bunları kullanmak için bir sınıf örneği oluşturulmalıdır. Bir nesnenin sınıfı onun planı gibi davranır. Örnek olarak araba sınıfını ele alalım. Farklı arabalar için farklı isimler ve markalar kullanılsa bile hepsinin dört tekerlek, hız sınırı, kilometre aralığı gibi bazı ortak özellikleri olacaktır. Bu durumda arabanın sınıfı şu şekilde temsil edilir: tekerlekler, hız sınırlamaları ve kilometre.
Miras
Bir nesne ana nesnenin tüm özelliklerini ve davranışlarını edindiğinde yani miras olarak bilinir. Kodun yeniden kullanılabilirliğini sağlar. Çalışma zamanı polimorfizmini elde etmek için kullanılır.
- Alt sınıf - Alt sınıf veya Türetilmiş Sınıf, başka bir sınıftan özellikler alan bir sınıfı ifade eder.
- Süper sınıf - 'Temel Sınıf' veya 'Süper Sınıf' terimi, bir alt sınıfın özelliklerini devraldığı sınıfı ifade eder.
- Yeniden Kullanılabilirlik - Sonuç olarak, yeni bir sınıf oluşturmak istediğimizde, ancak mevcut bir sınıf ihtiyacımız olan kodun bir kısmını zaten içeriyorsa, miras sayesinde eski sınıftan yeni sınıfımızı oluşturabiliriz. Bu, önceden var olan sınıfın alanlarını ve yöntemlerini kullanmamızı sağlar.
Polimorfizm
Ne zaman bir görev farklı yollarla gerçekleştirilir yani polimorfizm olarak bilinir. Örneğin: müşteriyi farklı şekilde ikna etmek, bir şeyler çizmek, ör. şekil veya dikdörtgen vb.
Farklı durumlar bir operasyonun farklı davranmasına neden olabilir. Operasyonda kullanılan veri türü davranışı belirler.
Soyutlama
Dahili ayrıntıları gizleme ve işlevselliği gösterme soyutlama olarak bilinir. Veri soyutlama, uygulama veya arka plan bilgilerini gizlerken yalnızca kesinlikle gerekli olan bilgilerin dış dünyaya ifşa edilmesi işlemidir. Örneğin: telefon görüşmesi, dahili işlemeyi bilmiyoruz.
karakter tostring java
C++'da soyutlamayı gerçekleştirmek için soyut sınıf ve arayüz kullanırız.
Kapsülleme
Kodu ve verileri tek bir birime bağlamak (veya sarmak), kapsülleme olarak bilinir. Örneğin: kapsül, farklı ilaçlarla sarılır.
Kapsülleme genellikle ilgili bilgi ve veri parçalarının tek bir varlık halinde gruplanması olarak anlaşılır. Kapsülleme, nesne yönelimli programlamada verileri ve onunla çalışan işlevleri birbirine bağlama işlemidir. Kapsüllemenin pratik bir örneğine bir göz atın: Bir şirkette satış bölümü, finans bölümü ve hesaplar bölümü dahil olmak üzere çeşitli bölümler vardır. Tüm mali işlemler, aynı zamanda tüm mali verilerin kayıtlarını da tutan finans sektörü tarafından yürütülür. Benzer şekilde, satış bölümü satışlarla ilgili tüm görevlerden sorumludur ve her satışın kaydını tutar. Şimdi, bir mali yetkilinin belirli bir aya ait satışlarla ilgili tüm bilgilere bazı nedenlerden dolayı ihtiyaç duyduğu bir senaryo ortaya çıkabilir. 'Satış bölümü' şemsiye terimi altında, satış bölümünün verilerini etkileyebilecek tüm çalışanlar bir arada gruplandırılmıştır. Veri soyutlama veya gizleme, kapsüllemenin başka bir yan etkisidir. Aynı şekilde kapsülleme de verileri gizler. Bahsi geçen örnekte satış, finans, hesaplar gibi herhangi bir bölümdeki verilere başka hiçbir alan erişememektedir.
Dinamik Bağlama - Dinamik bağlamada, bir işlev çağrısına yanıt olarak çalıştırılacak kodla ilgili olarak çalışma zamanında bir karar verilir. Bunun için C++ sanal işlevleri destekler.
OOP'ların Prosedür odaklı programlama diline göre avantajı
- OOP'ler, prosedür odaklı programlama dilinde olduğu gibi, proje boyutu büyüdükçe kodun büyümesi durumunda yönetimin kolay olmadığı durumlarda geliştirme ve bakımı kolaylaştırır.
- OOP'ler veri gizlemeyi sağlarken, Prosedür odaklı programlama dilinde küresel verilere her yerden erişilebilir.
- OOP'ler, gerçek dünyadaki olayı çok daha etkili bir şekilde simüle etme yeteneği sağlar. Nesneye Dayalı Programlama dilini kullanırsak gerçek kelime probleminin çözümünü sağlayabiliriz.
C++'da neden ayy'lara ihtiyacımız var?
İlk programlama yöntemlerinde çeşitli dezavantajların yanı sıra düşük performans da vardı. Prosedür odaklı programlamaya benzer şekilde, program içindeki kodu tekrar kullanamayacağınız, küresel veri erişiminde bir zorluk olduğu vb. nedeniyle bu yaklaşım gerçek dünyadaki sorunları etkili bir şekilde ele alamadı.
Sınıfların ve nesnelerin kullanımıyla nesne yönelimli programlama, kod bakımını kolaylaştırır. Kalıtım kodun yeniden kullanılmasına izin verdiğinden program daha basittir çünkü aynı kodu tekrar tekrar yazmak zorunda kalmazsınız. Veri gizleme aynı zamanda kapsülleme ve soyutlama gibi fikirlerle de sağlanır.
C++ neden kısmi bir hatadır?
C dilinin nesne yönelimli özellikleri, C++ dilinin oluşturulmasının ardındaki temel motivasyondu.
C++ programlama dili, sınıflar, nesneler, kalıtım, kapsülleme, soyutlama ve polimorfizm gibi OOP kavramlarını desteklemesine rağmen kısmi nesne yönelimli programlama dili olarak sınıflandırılır.
Java'da dizelerin eşitliği
1) C++'da main işlevi her zaman sınıfın dışında olmalıdır ve zorunludur. Bu, sınıflar ve nesneler olmadan da yapabileceğimiz ve uygulamada tek bir ana fonksiyona sahip olabileceğimiz anlamına gelir.
Bu durumda bir nesne olarak ifade edilir ve bu, Pure OOP'un ilk kez ihlal edildiği durumdur.
2) Global değişkenler, C++ programlama dilinin, program içindeki herhangi bir nesne tarafından erişilebilen ve program dışında tanımlanan bir özelliğidir. Kapsülleme burada bozuldu. C++ sınıflar ve nesneler için kapsüllemeyi teşvik etse de global değişkenler için bunu göz ardı eder.
Aşırı yükleme
Polimorfizmin aşırı yükleme olarak bilinen bir alt kümesi de vardır. Mevcut bir operatör veya fonksiyonun yeni bir veri tipi üzerinde çalışmaya zorlanması durumunda aşırı yüklendiği söylenir.
Çözüm
C++'da OOPS Kavramları hakkındaki bu kursu okuduktan sonra nesne yönelimli programlamanın gerekliliğini, C++ OOP'lerinin ne olduğunu ve polimorfizm, kalıtım, kapsülleme vb. gibi OOP'lerin temellerini anlamış olacaksınız. Polimorfizm ve kalıtım örneklerinin yanı sıra C++ OOP'lerin faydalarını da öğrendiniz.