Java Programlama Dilinde Kalıtımı Keşfetmek

Java Programlama Dilinde Kalıtımı Keşfetmek

Kalıtım, nesne yönelimli programlamanın temel kavramlarından biridir. Programlamada kalıtım kelimesi, bir alt sınıfın bir üst sınıfın durumunu ve davranışını üstlendiği bir ilişkiyi temsil eder.





Yazılım geliştirmede kalıtımın amacı, güvenli ve güvenilir yazılımın yeniden kullanımını kolaylaştırmaktır. Kalıtımı kullanmanın en büyük yararlarından biri, programlarınızdaki gereksiz kodu ortadan kaldırmasıdır.





usb sürücüye şifre nasıl korunur

Kalıtım Nasıl Çalışır?

Kalıtımın arkasındaki fikir, birçok sınıf veya nesnenin aynı nitelik ve yöntemlerden bazılarına sahip olmasıdır. Bu nedenle, güvenilir yazılım üretme ruhu içinde, yeni sınıflar artık önceden var olan ilgili sınıflardan alınabilir ve gerekirse mevcut durumlar ve davranışlar üzerine genişletilebilir.





Mirasın nasıl işlediğine dair gerçek dünyadan bir örnek, meyveleri düşünmek olacaktır. Bu, bir dizi farklı öğeyi kapsamaya yarayan geniş bir etikettir.

Elma bir meyvedir, portakal da öyle. Bununla birlikte, bir portakal bir elma değildir, bu nedenle bir mağazanız olsaydı, stok öğelerinizden biri olarak meyve olmazdı. Belki envanterinizde bir meyve bölümü olabilir ve bu bölümün altında elma ve portakal gibi daha spesifik öğeleriniz olabilir.



Miras böyle işler.

Java'da Kalıtımı Kullanma

Kalıtım, nesne yönelimli programlama paradigmasını kullanan herhangi bir programlama dilinde kullanılabilir. Ancak, kalıtımın tam olarak nasıl kullanılacağı, belirli programlama diline bağlıdır.





Örneğin, C++ aynı zamanda nesne yönelimli bir programlama dilidir. . C++, çoklu kalıtımı desteklerken, Java yalnızca tekli kalıtımı destekler.

Bunun anlamı, Java'da bir üst sınıfın birçok alt sınıfı olabilir, ancak her alt sınıfın yalnızca tek bir ebeveyn sınıfı olabilir (tek kalıtım). Ancak, bir büyük ebeveyn, ebeveyn ve çocuk ilişkisi oluşturarak Java'da dolaylı çoklu kalıtım elde etmenin bir yolu vardır.





Java'da Ebeveyn Sınıfı Oluşturma

Bir yazılım gereksinimleri belgesinden bir üst sınıf seçme süreci, nesne yönelimli analiz olarak bilinir. Bu işlem sırasında, olası kalıtım ilişkilerini tanımlamak için genellikle a ifadesi kullanılır. Yukarıdaki örneğimizden yola çıkarak, meyvenin ana sınıfımız olacağını görebilmelisiniz.

Meyve Veli Sınıfı Örneği


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

Yukarıdaki üst sınıfın en dikkate değer yönlerinden biri, her değişken bildiriminde kullanılan erişim değiştiricisidir. Korumalı erişim değiştiricisi, alt sınıf olmayan sınıfların üst sınıfın veri özniteliklerine erişmesini engellediği için üst sınıflarda kullanım için idealdir.

Kodun ilerleyen kısımlarında, herhangi bir Java sınıfı için genel yapı taşları olan yapıcılar, alıcılar ve ayarlayıcılarla tanışırsınız. Son olarak, tüm meyveler için evrensel oldukları için programımızın ana sınıfında oluşturulan iki yöntemle (meyve suyu ve yemek) tanıştırılırsınız—tüm meyveler yenebilir ve suyu sıkılabilir.

Java'da Alt Sınıflar Oluşturma

Alt sınıflara genellikle özel veya türetilmiş sınıflar denir, çünkü bunlar bir ebeveynden durum ve davranışı devralırlar ve genellikle bu nitelikleri daha spesifik olacak şekilde özelleştirirler.

Örneğimizle devam edersek, portakalın neden yukarıdaki meyve sınıfının uygun bir alt sınıfı olduğunu anlayabilmelisiniz.

Turuncu Çocuk Sınıf Örneği


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

Normal bir Java sınıfı bildiriminin nasıl göründüğü ile yukarıdaki kodumuzda bulunan arasında bir fark vardır. Genişletme anahtar sözcüğü, Java'da kalıtımı mümkün kılmak için kullanılan şeydir.

Yukarıdaki örneğimizde, alt sınıf (turuncu) ana sınıfı (meyve) genişletir. Bu nedenle, meyve sınıfının durumu ve davranışı artık portakal sınıfı tarafından erişilebilir ve değiştirilebilir.

Portakal sınıfımızın sahip olduğu benzersiz özellik, Supremes (portakallarda bulunan küçük segmentlerin resmi adı olan) değişken adı ile tanımlanır. İşte burada uzmanlaşma devreye giriyor; tüm meyvelerin yüceliği yoktur, ancak tüm portakalların vardır, bu nedenle portakal sınıfı için yüce değişkeni ayırmak mantıklıdır.

Soyma yöntemini önceden var olan yeme ve meyve suyu yöntemlerine eklemek de mantıklıdır çünkü tüm meyveler soyulmasa da portakallar genellikle soyulur.

Unutulmamalıdır ki, mevcut yeme ve meyve suyu yöntemlerini değiştirmeyi düşünmeseydik, bunları portakal sınıfımıza dahil etmemize gerek kalmayacaktı. Orange sınıfındaki yöntemler, meyve sınıfındaki benzer yöntemleri geçersiz kılar. Yani tüm meyveler aynı şekilde yenmiş ve suyu sıkılmış olsaydı, portakal sınıfında bu yöntemleri oluşturmamıza gerek kalmayacaktı.

Yapıcıların Kalıtımda Oynadıkları Rol

Varsayılan olarak, üst sınıf kurucuları alt sınıflar tarafından miras alınır. Bu nedenle, bir alt sınıf nesnesi oluşturulursa, bu, bir üst sınıf nesnesinin de otomatik olarak oluşturulduğu anlamına gelir.

Örneğimize geri dönersek, her yeni turuncu nesne oluşturulduğunda, portakal bir meyve olduğu için bir meyve nesnesi de oluşturulur.

Sahne arkasında, bir alt sınıf nesnesi oluşturulduğunda, önce üst sınıfın kurucusu, ardından alt sınıfın kurucusu çağrılır. Yukarıdaki turuncu çocuk sınıfımızda, herhangi bir parametre olmadan turuncu bir nesne oluşturulursa, varsayılan meyve sınıfı kurucumuz ve ardından varsayılan turuncu sınıf yüklenicimiz çağrılır.

Yukarıdaki birincil kurucumuzdaki super yöntemi gereklidir, çünkü ana meyve sınıfının birincil kurucusunun (varsayılan kurucunun değil) parametreli turuncu bir nesne oluşturulduğunda çağrılması gerektiğini belirtir.

Artık Java'da Kalıtımı Kullanabilirsiniz

Bu makaleden kalıtımın ne olduğunu, nasıl çalıştığını ve programlamada neden bu kadar önemli bir kavram olduğunu öğrenebildiniz. Artık Java programlama dilini kullanarak kalıtım ilişkilerinizi oluşturabilirsiniz. Ayrıca, artık bir büyük ebeveyn ilişkisi oluşturarak Java'nın tek miras kuralını nasıl aşacağınızı biliyorsunuz.

Resim Kredisi: Andreas Wohlfahrt / Pexels

Paylaş Paylaş Cıvıldamak E-posta Kalıtım ile Nesne Yönelimli Kodunuzu Nasıl Düzenlersiniz?

Nesne yönelimli programlamayı doğru yapmak, kalıtım ve kodlamayı nasıl basitleştirip hataları nasıl azaltabileceği hakkında bilgi sahibi olmanız gerektiği anlamına gelir.

Sonrakini Oku
İlgili konular
  • Programlama
  • Java
  • Nesne yönelimli programlama
Yazar hakkında Kadeisha Kean(21 Makale Yayınlandı)

Kadeisha Kean, Full-Stack Yazılım Geliştirici ve Teknik/Teknoloji Yazarıdır. En karmaşık teknolojik kavramların bazılarını basitleştirme konusunda belirgin bir yeteneğe sahiptir; herhangi bir teknoloji acemi tarafından kolayca anlaşılabilecek malzeme üretmek. Yazma, ilginç yazılımlar geliştirme ve dünyayı gezme (belgeseller aracılığıyla) konusunda tutkulu.

Kadeisha Kean'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın