Değerli Arkadaşlar bu yazımda sizlere C# ta miras kavramını anlatacağım C++ dilini kullananlar bu kavrama yabancı olmayacaklardır ancak C# ta bu olay biraz daha farklı olacağını göreceksiniz.Bunu bazı kişiler avantaj olarak görselerde tam tersini düşünenlerde mevcuttur onun için siz kendiniz öğrendikten sonra buna karar vereceksiniz şimdi yazımıza başlayalım.

Şimdi sizlere miras kavramının yani bazı yerlerde kalıtım diyede geçen kavramın programlamada ne anlama geldiğini açıklayacam. Miras kavramı,Oject Oriented Programming!in (Nesne Yönelimli Programlama) üç temel  prensibinden bir tanesidir. Diğer iki prensip ise encapsulation(Sarmalama) ve polymorphism(Çok biçimlilik)’dir. Bu yazımda diğer iki kavrama  değinmeyeceğim. En sade şekliyle: inheritance sayesinde bir sınıfın metodlarını başka bir sınıfta aynen kullanabiliriz. Eğer daha önce nesne tabanlı bir programlama dili kullandıysanız, (Java ve C++) C#’ta inheritance’a çok çabuk öğrenirsiniz.


Şimdi Sizlere bir olay üzerinden bu kavramı daha geniş anlatayım biliyorsunuz ki olaylarla senaryolarla uygulamalar geliştirmek yazılım mühendisliğinin temelidir.

Senaryo: Üniversite içerisinde öğrenci ve öğretmenleri tutan bir veritabanı kurulacak bu veritabanı üzerinden işlem yaparkende temel bazı İnterface ler oluşturulup ardından bunlardanda yine temel sınıflar oluşturulurulması planlanıyor şimdi bu class yapılarını oluşturalım.Aşağıda Classlar için gerekli etmenleri yazalım.

      Kişi Özellikleri

  • Ad                                                                               
  • Soyad
  • Yaşadığı Şehir
  • Yaş

       Öğretmen

  • Ad  
  • Soyad 
  • Yaşadığı Şehir 
  • Yaş
  • Bitirdiği Üniversite
  • Alanı

       Öğrenci

  • Ad
  • Soyad
  • Yaşadığı Şehir
  • Yaş
  • Bölümü

 Yukarıdaki Öğrenci ve Öğretmen Classlarına baktığımız zaman ilk 4 özellik ortak o zaman ilkin eğer ben Kişi Özellikleri diye bir class  oluşturmuşsam ve ardından da öğretmen classını oluştururken bu ilk 4 satırdaki özellikler için Öğretmen Classında yeni alanlar tutmama gerek yok bu özellikleri Kişi Özellikleri classından miras alarak kullanabilirim aynı şekilde öğrenci class ına da bunu uygularım böylece 2 classta kod yoğunluğu da azalmış olur ayrıcada effectif programlarda geliştirebiliriz bu yolla…

Şimdi bu Senaryoyu koda dökelim ve çıktısını görerek miras kavramını daha iyi anlamaya çalışalım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
class Kisi_Ozellikleri
{
public string Ad;
public string Soyad;
public string YasadigiSehir;
public int Yas;
}

class Ogretmen : Kisi_Ozellikleri
{
public string BitirdigiUniversite;
public string Alani;
}

class Ogrenci : Kisi_Ozellikleri
{
}

class Program
{
static void Main(string[] args)
{
Ogretmen deveci = new Ogretmen();
Console.WriteLine(“\t\tOGRETMEN BILGILERI GELIYOR\n”);

deveci.Ad = “MEHMET SALIH”;
deveci.Soyad = “DEVECI”;
deveci.Alani = “YAZILIM MUHENDISI”;
deveci.BitirdigiUniversite = “KTU”;
deveci.Yas = 21;
deveci.YasadigiSehir = “TRABZON”;

Console.WriteLine(deveci.Ad);
Console.WriteLine(deveci.Soyad);
Console.WriteLine(deveci.Alani);
Console.WriteLine(deveci.BitirdigiUniversite);
Console.WriteLine(deveci.Yas);
Console.WriteLine(deveci.YasadigiSehir+”\n\n”);

Console.WriteLine(“\t\tOGRENCI BILGILERI GELIYOR\n”);
Ogrenci mehmet = new Ogrenci();
mehmet.Ad = “SALIH”;
mehmet.Soyad = “DEVECI”;
mehmet.YasadigiSehir = “SANLIURFA”;
mehmet.Yas = 22;

Console.WriteLine(mehmet.Ad);
Console.WriteLine(mehmet.Soyad);
Console.WriteLine(mehmet.Yas);
Console.WriteLine(mehmet.YasadigiSehir);

Console.ReadLine();

}}
}

Şimdi Kodun Çıktısını görelim…

Böylelikle Bir yazımızın daha sonuna geldik bir sonraki yazıda buluşmak dileğiyle Esen Kalın….!!!

MEHMET SALİH DEVECİ

BİLGİSAYAR MÜHENDİSİ

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s