Soyutlama ve Kapsülleme: Soyutlama ve Kapsülleme Arasındaki Fark
Yayınlanan: 2021-02-09İçindekiler
Tanıtım
Her programcı düzgün ve temiz bir kod geliştirmeyi başarır ve zırh veya OOP konseptlerinden uygun bir silah kullanmalıdır. Uygun OOP kavramlarının kullanılması karmaşıklığı azaltacaktır ve nesnelerin varlığı kodun diğer bölümleriyle ilişkilendirilecektir. Ayrıca okunabilirliği artırır ve gerektiğinde kolayca değiştirilebilir.
Ayrıca, kalıtım gibi OOP kavramı, kodun genişletilebilirliğini sağlar. Bu kavramlar, soyut sınıfları tanımlamak, önceden uygulanmış kodları güncellemek, gerçek hayat senaryoları için bir uygulama uygulamak için faydalıdır.
Soyutlama, kapsülleme, nesne yönelimli programlamanın temel kavramlarıdır. Ve her programcı bu kavramları temiz ve yeniden kullanılabilir bir kod için uygular. Ancak bu iki kavram arasında hatırı sayılır sayıda fark var, onları bu yazıda anlayalım.
İlk olarak, soyutlama ve kapsülleme kavramlarını hızlıca gözden geçirelim.
Soyutlama
Soyutlama, gereksiz verileri gizleme ve yalnızca ilgili verileri gösterme işlemidir. Bir veri okyanusunun dışında, yalnızca bazı verilerin kullanıcı için şeffaflığını koruyoruz. Nesne yönelimli programlamadaki bu önemli kavram, kodun karmaşıklığını azaltacak ve okunabilirliği artıracaktır.
Örneğin, bize bir çevrimiçi kurs kayıt portalı oluşturma görevi verildiğini ve bize sunulan veri alanlarının {ad, yaş, mevcut meslek, üniversite adı, kurs adı, ödeme yöntemi, kardeşin adı, medeni durum, araç olduğunu varsayalım. numara}.
Mevcut veri alanlarına baktıktan sonra, kurs kayıt portalı için bazı alanların gerekli olmadığını, kurs kaydı için {kardeşin adı, medeni durumu, araç numarası} gibi alanların gerekli olmadığını anlayacağız.
Bu nedenle, spesifik olmamız ve yalnızca ilgili verileri seçmemiz gerekiyor. Şimdi gerekli alanlar {isim, yaş, mevcut meslek, kolej adı, kurs adı, ödeme yöntemi}'dir, bu, tüm verilerden seçilen bilgilere eşlik ettiğimiz için OOP'de bir soyutlama örneği oluşturur.
Artık bu yeni veriler, ders durum takibi, ders tamamlama kaydı vb. diğer bazı uygulamalar için de kullanılabilir. Aynı verileri herhangi bir değişiklik yapmadan kullanabiliriz.
Pek çok insan soyutlama ve soyut sınıf hakkında sık sık kafa karıştırır, yani ikisi de ilişkili mi?
Soyut bir sınıf, soyutlamadan farklıdır, soyut sınıflar/yöntemler, onları alt sınıfta veya alt sınıfta uygulamak amacıyla oluşturulur. Soyutlama ise basitçe verileri gizlemek ve genel, korumalı, özel gibi erişim belirteçlerini kullanarak yalnızca ilgili verileri göstermektir.
kapsülleme
Kapsülleme, veri üyelerini üye değişkenlerle bağlar. Bu, değişkenlerin doğrudan erişimini önleyecektir, çünkü değişkenlerin doğrudan erişimi gizliliği ihlal edebilir ve uygulamanın gizlenmesi mümkün olmayacaktır.
Set yönteminin bir değişkene bir değer atamak veya güncellemek için kullanıldığı ve get yönteminin bir değişkenin değerini okumak veya almak için kullanıldığı set ve get gibi bazı klasik yöntemlerden geçmiş olabiliriz. Burada o sınıfın nesnesini kullanarak değişkenlere doğrudan erişebiliriz, ancak bir değişkeni private yapmak istiyorsak bu ayarları kullanmalı ve yöntemleri almalıyız.
Konsept basit, kümeyi yapacağız ve yöntemleri herkese açık hale getireceğiz ve değişkenler özel. Özel nesnelere sınıf dışından değil, sınıf içinden erişilebilir olduğundan, değişkenlere yalnızca sınıf dışındaki genel yöntemlerle erişilebilir. Değişkenleri yöntemlerle bağlama veya demetleme kavramına kapsülleme denir.
Bunu daha iyi anlamak için basit bir java programına bakalım.
sınıf KursKayıt { özel Dize öğrenci_adı; özel String ders_adı; public String getName (){ öğrenci_adı döndür ; } public void setName (Dize adı){ bu .student_name=name; } public String getCourse (){ kurs_adı döndür ; } public void setCourse (Dize kursu){ bu .course_name=ders; } } public class u pGrad { public static void main (String[] args){ CourseRegistration c= new CourseRegistration(); c.setName( “mithun” ); c.setCourse( “Veri Bilimi” ); System.out.println(c.getName()); System.out.println(c.getCourse()); } } |
Yukarıdaki kodda, üye değişkenlerinin öğrenci adı ve kurs adının özel olduğu bir CourseRegistration sınıfı oluşturduk, ancak buna set name ve get name fonksiyonlarını kullanarak başka bir sınıftan erişiyoruz. Ana sınıfta CourseRegistration türünde bir nesne yarattık. Set ve get fonksiyonlarını kullanarak üye değişkenleri başlatıyoruz ve bunlara erişiyoruz.
Şimdi soyutlamanın tanımını ve örneğini gördüğümüze göre, soyutlama ve kapsülleme arasındaki avantajları ve farklılıkları tartışalım.
Soyutlamanın Avantajları
- Yalnızca ilgili veriler kullanıcı tarafından görülebildiği için verilerin gizliliği korunur.
- Kodun karmaşıklığını azaltır ve okunabilirliği artırır.
- Soyutlamayı uygulayan sınıf, onları devralarak bir üst sınıf olarak kullanılabilir, böylece yeniden kullanılabilirliği iyileştirir ve tekrarlamayı azaltır.
Kapsüllemenin Avantajları
- Veri üyelerinin üye işlevleriyle bağlanmasına yardımcı olur.
- Hata analizi için verimliliği artırır ve kullanıcı dostudur.
- Verilerin erişilebilirliğini ve şeffaflığını kontrol etmede programcıya esneklik sağlar.
Soyutlama ve Kapsülleme Arasındaki Fark
Tanım
- Soyutlama, kodun ayrıntılarını ve uygulamasını gizliyor.
- Kapsülleme, verileri gizler ve kodun görünürlüğünü kontrol eder.
Faz
- Soyutlama, tasarım düzeyinde bir süreçtir.
- Kapsülleme, uygulama düzeyinde bir süreçtir.
Önemli Yetenek
- Soyutlama, sınıfın uygulanması yerine bir sınıf örneğinin neler yapabileceğiyle ilgilenir.
- Kapsülleme, verilerin bağlanmasına ve verilerin şeffaflığının korunması üzerinde kontrole yardımcı olur.
Kullanım Örneği
- Soyutlama, tasarım düzeyinde bir süreçtir ve bir projenin tasarım aşamasında karmaşıklığı azaltmak için kullanılır.
- Kapsülleme, uygulama düzeyinde bir süreçtir ve bir projenin uygulama aşamasında gizlilik sağlamak ve verilerin şeffaflığı üzerinde kontrol sağlamak için kullanılır.
Nasıl Uygulanır
- Java'da sınıf ve arayüzler kullanılarak soyutlama yapılabilir.
- Kapsülleme, sınıflar kullanılarak da uygulanır ve veri gizliliği üzerindeki kontrol, korumalı, genel, özel gibi erişim belirteçleri belirtilerek elde edilir.
Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
OOP kavramlarının önemini inceledik, soyutlama ve kapsüllemenin tanımını anladık. Soyutlama ve kapsülleme örnekleri üzerinde yürüdü. Ayrıca soyutlama ve kapsülleme gibi OOP kavramlarını kullanmanın avantajlarına da göz attık. Ve son olarak, soyutlama ve kapsülleme arasındaki farkı inceledik.
Artık soyutlamanın, kapsüllemenin tanımını ve uygulamasını bildiğinize göre, bunları kodunuza uygulamayı deneyin ve bundan sonra yazacağınız kodun karmaşıklığını azaltmayı deneyin!
Java, full-stack geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje sunan Full-stack Yazılım Geliştirmede Yönetici PG Programına göz atın , ve ödevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
Nesne yönelimli programlamada soyutlama nedir?
Nesne yönelimli programlamada soyutlama, bir nesne oluşturarak bir problem hakkında üst düzey bilgileri temsil eden bir tekniktir. Soyutlama, arayüz yardımı ile gerçekleştirilir ve arayüzün uygulanması, gerçek kod kullanılarak yapılır. Soyutlama, farklı bir arayüz sağlayarak, tüketen modüllerden somut detayların gizlendiği yerde uygulanır. Alt düzey ayrıntıların uygulama ayrıntılarını gizlemek için soyutlama uygulanır. Ayrıca karmaşık detayları gizlemek ve kullanıcıya daha basit bir arayüz sağlamak için kullanılır.
Sınıflar ve nesneler programlamada nasıl çalışır?
Sınıflar ve nesneler, tüm nesne yönelimli programlama dillerinde kullanılan iki ana kavramdır. Her sınıf, kullanabileceği ve değiştirebileceği bir dizi değişken ve yöntem içerir. Nesne yönelimli bir programlama dilinde, bir programdaki tüm nesnelerin belirli bir türü vardır ve bir nesnenin değişkenleri ve yöntemleri yalnızca aynı türdeki yöntemlerle manipüle edilebilir. Çoğu nesne yönelimli dilde, sınıf bir nesne oluşturmak için kullanılır ve bunun tersi de geçerlidir. Nesne yönelimli bir program, nesnelerden, prosedürlerden ve veri türlerinden oluşur. Veri ve kod dahil olmak üzere nesne yönelimli bir programdaki her şey bir nesnedir.
Kapsülleme ve soyutlama arasındaki farklar nelerdir?
Soyutlama, koddaki gereksiz detayların çıkarılması ve ilgili kısımlara odaklanma yöntemidir. Örneğin iki sayıyı çarpan bir fonksiyon yazmak yerine “çarpma” fonksiyonunu yazıp herhangi bir sayıyı herhangi bir sayı ile çarpmak için kullanabiliriz. Soyutlama, bazı belirli verileri temsil etmenin bir yoludur. Kapsülleme, bir şeyin karmaşıklığını gizlemenin ve yalnızca ortaya çıkarmak istediğiniz kısımları açığa çıkarmanın bir yoludur. Örneğin, verileri depolamak için kullandığınız bir veya daha fazla özel alana sahip bir sınıfınız varsa, kapsülleme içindesiniz demektir. Sınıf, verileri içerir ve genel verileri ortaya çıkaran yöntemlere sahiptir.