data abstraction c
C ++ 'da Soyutlama Hakkında Bilmeniz Gereken Her Şey.
Bu C ++ eğitim serisinde, OOP'nin dört direği olarak bilinen C ++ 'da Nesne Tabanlı programlamanın tüm ana kavramlarını öğreneceğiz.
- Soyutlama
- Kapsülleme
- Miras
- Polimorfizm
Bu eğiticide, C ++ 'da veri soyutlama hakkında her şeyi keşfedeceğiz.
=> Absolute C ++ Eğitim Serisi İçin Tıklayınız.
java'da int dizisi nasıl sıralanır
Ne öğreneceksin:
- Soyutlama Nedir?
- C ++ 'da Soyutlamanın Uygulanması
- Soyutlamanın Avantajları
- Sonuç
- Önerilen Kaynaklar
Soyutlama Nedir?
Soyutlama, uygulamayla ilgili ayrıntıları kullanıcıdan gizlediğimiz ve yalnızca gerekli olan bir arabirimi açığa çıkardığımız, nesne yönelimli programlama tekniğidir.
Bir Klimanın (AC) gerçek hayattan bir örneğini alabiliriz. Başlatma, durdurma, sıcaklığı artırma / azaltma, nemi kontrol etme vb. Gibi çeşitli AC işlevlerini kontrol etmek için bir uzaktan kumandamız var. Bu işlevleri yalnızca bir düğme saatiyle kontrol edebiliriz, ancak dahili olarak karmaşık bir mantık vardır. bu işlevleri gerçekleştirmek için uygulanır.
Ancak, bir son kullanıcı olarak karşılaştığımız şey, tüm bu işlevlerin uygulama ayrıntıları değil, yalnızca uzak arabirimdir.
Soyutlama, nesne yönelimli programlamanın dört sütunundan biridir ve neredeyse tüm OOP çözümleri soyutlama ilkelerine, yani programdaki arayüz ve uygulama ayrıntılarının ayrılmasına dayanır.
Yukarıdaki diyagramda, bir nesneyi ve içeriğini resimli bir temsil olarak gösterdik. Bu nesnenin en içteki katmanının, onun temel işlevselliği ve ardından uygulama ayrıntıları olduğunu görebiliriz.
OOP'de, bu iki katman (çoğu durumda bu yalnızca bir katman olsa da) dış dünyaya maruz kalmaz. En dıştaki katman olan arayüz, nesnenin işlevselliğine erişmek için son kullanıcıya sağlanan katmandır.
Sonuç olarak, nesnenin en içteki katmanlarında yapılan herhangi bir değişiklik, kullanıcının maruz kaldığı arayüz aynı kaldığı sürece bir son kullanıcı için açık değildir.
C ++ 'da Soyutlamanın Uygulanması
C ++, soyutlamayı büyük bir derinlikte destekler. C ++ 'da kullandığımız kütüphane fonksiyonları bile bir soyutlama örneği olarak kabul edilebilir.
Soyutlamanın uygulanmasını C ++ 'da aşağıdaki gibi temsil edebiliriz:
Yukarıdaki şekilde gösterildiği gibi, soyutlamayı C ++ 'da iki şekilde uygulayabiliriz:
# 1) Sınıfları ve Erişim Belirteçlerini Kullanma
Genel, özel ve korumalı erişim belirteçleri ile C ++ 'da uygulanan bir sınıf, soyutlamanın bir uygulaması olarak kabul edilebilir.
herhangi bir web sitesinden video indirme programı
Zaten bildiğimiz gibi, erişim belirteçlerinin kullanımı sınıf üyelerine verilen erişimi kontrol etmemize izin verir. Bazı üyeleri sınıf dışında erişilemez hale getirebiliriz. Yalnızca türetilmiş sınıflar tarafından erişilebilir olmaları için bazı üyelerimizi korumalı olarak alabiliriz. Son olarak, bazı üyeleri herkese açık hale getirebiliriz, böylece bu üyeler sınıf dışında erişilebilir olur.
Bu kavramı kullanarak, özel erişim belirteci kullanarak uygulama ayrıntılarının dış dünyadan gizleneceği ve arabirimin genel tanımlayıcı kullanılarak dış dünyaya açık olacağı şekilde soyutlamayı uygulayabiliriz.
Dolayısıyla, verileri ve işlevleri tek bir birimde toplamak için bir sınıf kullanarak ve bu verilere ve işlevlere erişimi kontrol etmek için erişim belirteçlerini kullanarak C ++ 'da soyutlama uygulayabiliriz.
Bunu göstermek için aşağıdaki Örneği uygulayalım.
#include #include using namespace std; class sample { int num1,num2; void readNum(){ cout<>num1; cout<>num2; } public: void displaySum() { readNum(); cout<<'
Sum of the two numbers = '< Çıktı:
Num1: 10 girin
Num2: 20 girin
İki sayının toplamı = 30
Yukarıdaki programda num1 ve num2 olmak üzere iki tamsayı değişkenine sahip bir örnek sınıfımız var. Ayrıca readNum ve displaySum olmak üzere iki işlevi vardır. Veri üyelerinin num1 ve num2 yanı sıra readNum işlevi sınıfa özeldir.
DisplaySum işlevi, sınıfa geneldir. Ana işlevde, bir sınıf örneği nesnesi oluşturuyoruz ve iki sayıyı okuyan ve bunların toplamını yazdıran displaySum'u çağırıyoruz.
Bu soyutlama uygulamasıdır. Diğer veri üyelerini ve işlevleri gizli tutarken yalnızca bir işlevi kamuya açıklıyoruz. Bu sadece soyutlamayı göstermek için bir örnek olsa da, gerçek hayat problemlerini uygularken, C ++ 'da birçok soyutlama seviyesine sahip olabiliriz.
# 2) Üstbilgi Dosyası Uygulamasını Kullanma
Önceden tanımlanmış fonksiyonları içe aktarmak ve kullanmak için C ++ programında başlık dosyalarını kullanıyoruz. Bunun için, başlık dosyalarını programımıza dahil etmek için #include direktifini kullanıyoruz.
Örneğin, Yukarıdaki programda cin ve cout işlevlerini kullandık. Bu işlevler söz konusu olduğunda, yalnızca onları nasıl kullanacağımızı ve aldıkları parametrelerin ne olduğunu biliyoruz.
Bu işlevler çağrıldığında arka planda neler olup bittiğini veya iostream başlık dosyasında nasıl uygulandıklarını bilmiyoruz. Bu, C ++ tarafından sağlanan başka bir soyutlama yoludur.
Başlık dosyalarından içe aktardığımız tüm işlevlerin uygulanmasının ayrıntılarını bilmiyoruz.
İşte Soyutlamayı göstermek için başka bir Örnek.
#include #include using namespace std; class employee{ int empId; string name; double salary,basic,allowances; double calculateSalary(int empId){ salary = basic+allowances; return salary; } public: employee(int empId, string name,double basic,double allowances): empId(empId),name(name),basic(basic),allowances(allowances){ calculateSalary(empId); } void display(){ cout<<'EmpId = '< Çıktı:
EmpId = 1 İsim = Ved
Çalışan Maaşı = 18245.4

Bu örnekte, empId, isim, temel ve ödenekler gibi maaş detayları gibi özel detayları olan bir sınıf çalışanı tanımladık. Ayrıca, maaşı temel ve ödenekleri kullanarak hesaplayan özel bir işlev 'calculateSalary' tanımlıyoruz.
Belirli bir çalışan nesnesi için tüm verileri başlatmak için bir kurucumuz var. Mevcut çalışanın maaşını hesaplamak için kurucudan 'calculateSalary' işlevini de çağırıyoruz.
c ++ için en iyi derleyici
Daha sonra empId, name ve maaş gösteren bir 'display' fonksiyonumuz var. Ana işlevde, sınıf çalışanı nesnesini oluşturuyoruz ve görüntüleme işlevini çağırıyoruz.
Bu programda sağladığımız soyutlama seviyesini açıkça görebiliriz. Tüm çalışan ayrıntılarını gizledik ve ayrıca hesaplama işlevini kullanıcıdan gizli hale getirerek kullanıcıdan gizledik.
Kullanıcıya, çalışan nesnesi ile ilgili tüm bilgileri kullanıcıya veren ve aynı zamanda özel veriler ve çalışanın maaşını nasıl hesapladığımız gibi ayrıntıları da gizleyen tek bir işlev ekranını kullanıcıya gösterdik.
Bunu yaparak, gelecekte daha fazla ayrıntı eklemek ve maaşın hesaplanma şeklini değiştirmek istersek, görüntüleme işlevini değiştirmemize gerek kalmaz. Kullanıcı bu değişikliklerden habersiz olacaktır.
Soyutlamanın Avantajları
Aşağıda, soyutlamanın avantajlarından bazıları listelenmiştir.
- Programcının düşük seviyeli kod yazmasına gerek yoktur.
- Soyutlama, dahili uygulamayı kötü niyetli kullanım ve hatalardan korur.
- Soyutlama, kod tekrarını önleyebilir ve bu nedenle programcının aynı görevleri defalarca gerçekleştirmesi gerekir.
- Soyutlama, kodun yeniden kullanımını teşvik eder ve sınıf veri üyelerini uygun şekilde sınıflandırır.
- Programcı, sınıf uygulamasının dahili ayrıntılarını son kullanıcının bilgisi olmadan değiştirebilir, böylece dış katman işlemlerini etkilemeden.
Sonuç
Soyutlama, OOP'deki en önemli kavramlardan biridir ve C ++ 'da büyük bir derinlikte uygulanmaktadır. Soyutlamayı kullanarak programın uygulama detaylarını gizli tutabilir ve sadece istediğimiz detayları dış dünyaya ifşa edebiliriz.
Soyutlama konseptini kullanarak, üzerine bütün bir çözümün inşa edildiği programlama çözümüne iskelet görevi gören soyut veri türleri ve sınıfları tasarlayabiliriz. OOP konuları boyunca ilerledikçe, bu türler ve sınıflar hakkında daha fazla bilgi edineceğiz.
Yaklaşan eğitimlerimizde, OOP'nin başka bir ayağı olan Kapsülleme hakkında bilgi edineceğiz. Ayrıca burada soyutlama ve kapsüllemeyi birlikte tartacağız.
=> Tüm C ++ Eğitim Serisini Burada Arayın.
Önerilen Kaynaklar
- C ++ Veri Türleri
- C ++ 'da Kapsülleme
- 2021'de Programlamayı Ortadan Kaldıran En İyi 10 Veri Bilimi Aracı
- C ++ 'da Nesne Tabanlı Programlama
- C ++ 'da Veri Yapılarına Giriş
- ÜCRETSİZ C ++ Programlamayı Öğrenmek İçin 70+ EN İYİ C ++ Öğreticisi
- Kullanıcı Tanımlı Değişkenleri Kullanarak JMeter Veri Parametrelendirmesi
- Veri Toplama Stratejileri ile 10'dan Fazla En İyi Veri Toplama Aracı