Java'da Veri Soyutlama Nasıl Uygulanır?
Yayınlanan: 2022-05-17Soyutlama, polimorfizm, kapsülleme ve kalıtım, nesne yönelimli programlamanın dört temel öğesidir. Bunlardan biri olan Veri Soyutlama, aşağıdaki makalede ayrıntılı olarak ele alınacaktır. Java'da veri soyutlamayı nasıl gerçekleştireceğimizi de öğreneceğiz.
Veri Soyutlama Nedir?
Veri soyutlama, yalnızca en önemli ayrıntıların kullanıcıya gösterildiği karakteristik özelliktir. Kullanıcı önemsiz veya gerekli olmayan ayrıntılardan habersiz tutulur. Örneğin, bir otomobil, ayrı parçalarından ziyade bir bütün olarak kabul edilir. Konu dışı bilgileri atarken bir öğenin yalnızca gerekli niteliklerini belirleme uygulaması, veri soyutlaması olarak bilinir.
Basit bir ifadeyle, veri soyutlama, önemsiz öğeleri gizli tutarken önemli öğeleri kullanıcıya gösterir.
Sınıflar ve arayüzler yardımıyla soyutlamayı uygulamak için "abstract" anahtar sözcüğünü kullanırız. Soyut sınıflarda hem soyut hem de somut yöntemlere sahip olabiliriz.
Soyut Sınıflar nelerdir?
Nesneye Yönelik Programlama'da soyut sınıf, bir veya daha fazla soyut yöntem bildiren bir sınıftır. Soyut ve normal Java sınıfları arasındaki tek fark, soyut sınıfların soyut anahtar kelimeyi içermesi, oysa normal Java sınıflarının içermemesidir. Soyut bir sınıfın bildirimi için sınıf adından önce abstract anahtar sözcüğünü kullanırız. Sınıflarda hem soyut hem de somut yöntemler olabilir. Ancak, soyut yöntemler normal sınıflarda bulunamaz. En az bir soyut yöntemi olan bir sınıfa soyut sınıf denir.
Sözdizimi:

genel soyut sınıf Name_of_Class
{
genel özet Name_of_Method();
}
Soyut sınıfın uygulanmasına bir örnek:
//soyut sınıf adlandırma
soyut sınıf DemoClass
{
//soyut yöntem adlandırma
soyut geçersiz disp();
}
//soyut sınıfla devam ediyoruz
public class MainClass, DemoClass'ı genişletiyor
{
//soyut sınıfın yöntem gövdesini tanımlama
geçersiz ekran()
{
System.out.println(“Soyut yöntem çağrıldı.”);
}
public static void main(String[] args)
{
AnaSınıf nesnesi = yeni AnaSınıf ();
//soyut yöntemi çağırmak
obj.display();
}
}
Noktasal olarak listelemek için:
- Bir sınıf, en az bir soyut yöntemi varsa, soyut olarak tanımlanmalıdır.
- Soyut olarak bildirilmiş bir sınıf somutlaştırılamaz.
- Başka bir sınıftan soyut bir sınıf devralmalı ve onu kullanmak için soyut yöntemleri için uygulamalar sağlamalısınız.
- Miras alırsanız, soyut bir sınıftaki tüm soyut yöntemler için uygulamalar sağlamalısınız.
Soyut Yöntemler nelerdir?
Soyut bir yöntemin yalnızca yöntem bildirimi vardır ve uygulaması yoktur. Soyut bir yöntem, kendi gövdesi olmayan bir yöntemle temsil edilebilir. Soyut yöntemler, yalnızca soyut sınıflar içinde bildirilmelidir.
Bir sınıfın bir yöntemi olmasını istiyorsanız, ancak bu yöntemin gerçek uygulamasının alt sınıflar tarafından belirlenmesini istiyorsanız, yöntemi üst sınıfta bir özet olarak atayın.
Nesne Yönelimli Programlamada Veri Soyutlamanın Avantajları
- Nesneye Yönelik Programlamada soyutlama, program tasarımının karmaşıklığını ve yazılım üzerinde uygulama sürecini azaltır.
- Java programlamasında soyutlama uygulamasının en önemli avantajı, kullanıcıların daha sonra kardeşler gibi benzerliklere dayalı olarak sınıfları kolayca organize edebilmeleridir ve bu nedenle, verilerin kalıtımı ve verilerin taşınması kolay ve uygulanabilir hale gelir.
- Miras mümkündür. Örneğin:
/* Dosya adı : DemoAbstract.java */
genel sınıf DemoAbstract {
public static void main(String [] args) {
/* aşağıdakiler yazılamaz ve hataları başlatır */
çalışan e = yeni çalışan(“Peter D.”, “Hartford, CT”, 35);
System.out.println(“\n Çalışan referansını kullanın ve MailCheck–“);
e.mailCheck();
}
}
Bu, aşağıdaki hatayı gösterir:
Employee.java:46: Çalışan soyuttur; somutlaştırılamaz
çalışan e = yeni çalışan(“Peter D.”, “Hartford, CT”, 35);
^
1 hata
Bu yüzden soyut sınıf kullanımını şu şekilde kullanıyoruz:
/* Dosya adı : çalışan.java */
genel soyut sınıf çalışanı {
özel Dize N;
özel Dize Ekle;
özel int Num;
public Employee(String N, String Add, int Num) {
System.out.println(“Bir çalışan oluşturmak”);
this.name = N;
this.address = Ekle;
this.number = Sayı;
}
genel çift hesaplama_pay() {
System.out.println(“İçeriden çalışan hesaplama_pay”);
0.0 döndür;
}
public void Mailcheck() {
System.out.println(“Bir çek ” + this.name + ” ” + this.address'e postalama);
}
public String toString() {
dönüş N + ” ” + Ekle + ” ” + N;
}
public String getName() {
dönüş N;
}
public String getAddress() {
dönüş Ekle;
}
public void setAddress(String newAddress) {
Ekle = yeniAdres;

}
public int getNumber() {
dönüş Sayısı;
}
}
Soyut sınıf veya soyut yöntemleri ne zaman kullanırız?
Genel “şekiller” örneğini düşündüğümüzde, bunun bilgisayar destekli bir tasarım sistemine veya bir video oyunu simülasyonuna atıfta bulunularak kullanıldığını hayal edebiliriz. Burada atıfta bulunulan temel tip, her şeklin kendi renk özelliklerine, boyutuna vb. sahip olduğu bir "şekil"dir. Belirli şekil sınıfları -daire, kare, üçgen vb. bundan türetilir (miras alınır), bunların her biri ekstra benzersiz özelliklere ve davranışlara sahip olabilir. Örneğin bazı şekiller simetrik olabilirken diğerleri simetrik olmayabilir. Şekiller arasındaki hem benzerlikler hem de belirgin farklılıklar, tür hiyerarşisinde somutlaştırılmıştır.
Bu nedenle şekil, soyut bir sınıfa benzer olabilirken, farklı şekil türleri somut sınıflar olarak gösterilebilir.
Soyut sınıfları açıklamak için gerçek hayat senaryosu:
// Soyutlamayı gösteren Java programı
soyut sınıf şekli {
Dize rengi;
soyut çift alan();
genel özet String toString();
// soyut sınıf yapıcıya sahip olabilir
genel şekil(Dize rengi)
{
System.out.println(“Şekil oluşturucu çağrıldı”);
this.color = renk;
}
// bu somut bir yöntemdir
public String getColour() { dönüş rengi; }
}
sınıf Daire şekli uzatır {
çift r;
public Circle(Dize rengi, double(r)
{
// Shape yapıcısını çağırıyor
süper(renk);
System.out.println(“Daire oluşturucusu çağrılır”);
bu.r = r;
}
@Çift alanı geçersiz kıl()
{
dönüş Math.PI * Math.pow(r, 2);
}
@Genel dizeyi geçersiz kıl toString()
{
Döndür “Daire rengi ” + super.getColor()
+ “ve alan : ” + alan();
}
}
class Dikdörtgen şekli uzatır {
çift uzunluk;
çift genişlik;
genel Dikdörtgen(Dize rengi, çift uzunluk,
çift genişlik)
{
// Shape yapıcısını çağırıyor
süper(renk);
System.out.println(“Dikdörtgen yapıcı çağrılır”);
this.length = uzunluk;
this.width = genişlik;
}
@Override double area() { dönüş uzunluğu * genişlik; }
@Genel dizeyi geçersiz kıl toString()
{
dönüş “Dikdörtgen rengi ” + super.getcolor()
+ “ve alan : ” + alan();
}
}
genel sınıf Testi {
public static void main(String[] args)
{
Şekil s1 = yeni Daire(“Kırmızı”, 2.2);
Şekil s2 = yeni Dikdörtgen(“Sarı”, 2, 4);
System.out.println(s1.toString());
System.out.println(s2.toString());
}
}
Bu kod bölümü, buradaki kodun değiştirilmiş bir versiyonudur .
Java'da veri soyutlamasının kullanıldığı bir programın kod parçacığı:
// Java'da soyutlama
soyut sınıf ElecBill
{
//soyut yöntem
soyut kayan nokta compBill();
}
Class Comm ElecBill'i genişletiyor
{
float compBill() {
dönüş 1.00*100;
}
}
Yerli sınıfı ElecBill'i uzatıyor
{
float compBill() {
0,50*75 döndür;

}
}
Çözüm
Veri soyutlama, nesne yönelimli programlamanın önemli bir yönüdür. Java gibi diller için soyutlama ve kalıtım, kapsülleme ve polimorfizm gibi diğer OOP kavramları verimli programlar yazmada çok önemli bir rol oynar.
OOP'leri derinlemesine öğrenmek ve birinci sınıf programlama becerileri edinmek istiyorsanız, öğrencilerin Java, OODAP, DSA, HTML5, CSS3 becerileri edinmelerine yardımcı olmak için tasarlanmış Yazılım Mühendisliğinde İş Bağlantılı PG Sertifikasyonuna katılmanızı öneririz. , JavaScript, MERN, AWS, SQL ve NoSQL Veritabanları, Spring Boot, vb. 5 aylık kurs iki uzmanlığı kapsar – MERN Yığın Uzmanlığı ve Bulutta Yerel Uzmanlık ve upGrad 360 ° kariyer danışmanlığı oturumlarına erişim sağlar.
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.
polimorfizm nedir? Veri soyutlamadan farkı nedir?
Polimorfizm, veri soyutlamasına benzer bir genellemedir, ancak çalışma zamanında ortaya çıkar. Birbirinden ayırt edilemeyen farklı nesne türleri koleksiyonuna erişmek için bir mekanizma varsa, bunlar polimorfiktir. Bu nedenle, aynı olmasalar bile, içindeki tüm nesneler aynı görünüme ve hislere sahiptir. Amaç, kodlamayı büyük ölçüde azaltmaktır. Her bir tür için sayısız permütasyonun hepsini yazmak yerine, tek bir evrensel çözüm yazabilirsiniz.
Kapsülleme ve Veri Soyutlama arasındaki farklar nelerdir?
KAPSÜLLEME - 1. Kapsülleme verileri (bilgi) gizlerken, soyutlama ayrıntıları gizler (uygulama gizleme). 2. Nesneye Yönelik Programlamanın soyutlaması tasarım düzeyindeki sorunları çözer. 3. Güvenlik amacıyla, kapsülleme, bir nesnenin bir şeyi nasıl gerçekleştirdiğine dair dahili bilgileri veya mekanikleri gizleme anlamına gelir. ÖZET - 1. Kapsülleme, veri ve üzerinde çalışan yöntemleri birbirine bağlarken, veri soyutlama, uygulama ayrıntılarını gizlerken kullanıcı arabirimini açığa çıkarmakla ilgilidir. 2. Kapsülleme yoluyla uygulama düzeyinde çözülür. 3. Java'da veri soyutlama, bilgi nesnesinin içermesi gereken şeylere konsantre olmanızı sağlar.
Arayüz ve soyut sınıf arasındaki ayırt edici özellikler nelerdir?
Arayüz - 1. Yalnızca soyut yöntemler, kendilerini arayüzün bir parçası olarak bulurlar. 2. Çoklu devralmalar desteklenir. 3. Soyut sınıfın uygulamasını sunamaz. 4. Bir arabirimde yalnızca genel soyut yöntemlere izin verilir. 5. Arayüzde yalnızca bir genel statik son değişken kullanılabilir. Soyut sınıf - 1. Soyut ve soyut olmayan yöntemler soyut bir sınıfta bulunabilir. 2. Çoklu devralmalar desteklenmez. 3. Arayüz uygulama yeteneğine sahiptir. 4. Soyut bir sınıfta hem korumalı hem de soyut genel yöntemler mümkündür. 5. Herhangi bir erişim belirteci ile bir soyut sınıf, final, static veya static final değişkenlerine sahip olabilir.