nesneye dayali programlama - ioztel.sakarya.edu.tr · kalıtım •biribiri ile bağlantılı bir...

13
NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Upload: others

Post on 30-Sep-2020

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

NESNEYE DAYALI

PROGRAMLAMA

9. HAFTA UYGULAMA DERSİ

Page 2: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

KALITIM

Page 3: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Kalıtım

• Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir

sınıf tanımlanabilir

• Bu sınıf daha sonra diğer özel sınıflara kalıtım yoluyla aktarılabilir ve her sınıf

kendine özgü özellikleri buraya ekler

• Kalıtım yoluyla aktarılan sınıfa ‘temel sınıf ’, kalıtım işlemini gerçekleyen

sınıfa ‘türetilmiş sınıf ’ denir

Page 4: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Kalıtım - Uygulama

class IkiBoyutlu{

public double genislik;public double yukseklik;

public void goster(){

Console.WriteLine("Genişlik = " + genislik); Console.WriteLine("Yükseklik " + yukseklik);

}}

class Ucgen : IkiBoyutlu{

public string tip;

public double alan(){

return genislik * yukseklik / 2;}

public void tipGoster(){

Console.WriteLine("Üçgen tipi : " + tip);}

}

class Program{

public static void Main(){

Ucgen t1 = new Ucgen();Ucgen t2 = new Ucgen();

t1.genislik = 4.0;t1.yukseklik = 4.0;t1.tip = "ikizkenar";

t2.genislik = 8.0;t2.yukseklik = 12.0;t2.tip = "dik";

t1.tipGoster();t1.goster();Console.WriteLine("Alan = " + t1.alan());

Console.WriteLine();

t2.tipGoster();t2.goster();Console.WriteLine("Alan = " + t2.alan());

Console.Read();}

}

Page 5: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Üye erişimi ve kalıtım – Uygulama I

class IkiBoyutlu2{

double _genislik; double _yukseklik;

public double genislik{

get { return _genislik; }set { _genislik = value; }

}

public double yukseklik{

get { return _yukseklik; }set { _yukseklik = value; }

}

public void goster(){

Console.WriteLine("Genislik = " + genislik );Console.WriteLine("Yükseklik = " + yukseklik);

}}

class Ucgen : IkiBoyutlu2{

public string tip;

public double alan(){

return genislik * yukseklik / 2;}

public void tipGoster(){

Console.WriteLine("Tip = " + tip);}

}

Page 6: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Üye erişimi ve kalıtım –

Uygulama I

class Program{

public static void Main(){

Ucgen t1 = new Ucgen();Ucgen t2 = new Ucgen();

t1.genislik = 4.0;t1.yukseklik = 4.0;t1.tip = "ikizkenar";

t2.genislik = 8.0;t2.yukseklik = 12.0;t2.tip = "dik";

t1.tipGoster();t1.goster();Console.WriteLine("Alan = " + t1.alan());

Console.WriteLine();

t2.tipGoster();t2.goster();Console.WriteLine("Alan = " + t2.alan());

}}

Page 7: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Üye erişimi ve kalıtım –

Uygulama II

class B : A{

int k;

public void ata2(){

k = i * j;}

public void goster2(){

Console.WriteLine(k);}

}

class Program{

public static void Main(){

B ob = new B();

ob.ata(2, 3); ob.goster();

ob.ata2(); ob.goster2();

Console.Read();}

}

class A{

protected int i, j;

public void ata(int a, int b){

i = a;j = b;

}

public void goster(){

Console.WriteLine(i + " " + j);}

}

Page 8: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Yapılandırıcılar ve Kalıtım -

Uygulama

class IkiBoyutlu

{

double _genislik;

double _yukseklik;

public IkiBoyutlu(double g, double y)

{

genislik = g;

yukseklik = y;

}

public double genislik

{

get { return _genislik; }

set { _genislik = value; }

}

public double yukseklik

{

get { return _yukseklik; }

set { _yukseklik = value; }

}

public void goster()

{

Console.WriteLine("Genislik = " + genislik);

Console.WriteLine("Yükseklik = " + yukseklik);

}

}

Page 9: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Yapılandırıcılar ve Kalıtım - Uygulama

class Ucgen : IkiBoyutlu{

string tip;

public Ucgen(string t, double g, double y): base(g, y){

tip = t;}

public double alan(){

return genislik * yukseklik / 2;}

public void tipGoster(){

Console.WriteLine("Tip = " + tip);}

}

class Program{

public static void Main(){

Ucgen t1 = new Ucgen("ikizkenar", 4.0, 4.0);Ucgen t2 = new Ucgen("dik", 8.0, 12.0);

t1.tipGoster();t1.goster();Console.WriteLine("Alan = " + t1.alan());

Console.WriteLine();

t2.tipGoster();t2.goster();Console.WriteLine("Alan = " + t2.alan());

Console.Read();}

}

Page 10: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Sanal Metotlar ve Devre Dışı Bırakma

class TemelSınıf{

public virtual void metot(){

Console.WriteLine("Temel sınıf içerisindeki metot");}

}

class TuretilmisSınıf1 : TemelSınıf{

public override void metot(){

Console.WriteLine("TuretilmisSınıf1 içerisindeki metot");}

}

class TuretilmisSınıf2 : TemelSınıf{

public override void metot(){

Console.WriteLine("TuretilmisSınıf2 içerisindeki metot");}

}

class Program{

public static void Main(){

TemelSınıf temel = new TemelSınıf();TuretilmisSınıf1 t1 = new TuretilmisSınıf1();TuretilmisSınıf2 t2 = new TuretilmisSınıf2();

TemelSınıf temelReferans;

temelReferans = temel;temelReferans.metot();

temelReferans = t1;temelReferans.metot();

temelReferans = t2;temelReferans.metot();

Console.Read();}

}

Page 11: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Özet Sınıf- Uygulama

class Tekne : Arac{

public string malzeme;public override void goster(){

Console.WriteLine("\nTEKNENİN ÖZELLİKLERİ: ");Console.WriteLine("Renk :" + renk);Console.WriteLine("Malzeme : " + malzeme);

}}

class Program{

static void Main(string[] args){

Araba a = new Araba();

a.renk = "Mavi";a.vites_tipi = "Düz";a.goster();

Tekne t = new Tekne();t.renk = "Beyaz";t.malzeme = "Ahşap"; t.goster();

Console.ReadKey();}

}

abstract class Arac{

public string renk;abstract public void goster();

}

class Araba : Arac{

public string vites_tipi;public override void goster(){

Console.WriteLine("ARABANIN ÖZELLİKLERİ : ");Console.WriteLine("Renk :" + renk);Console.WriteLine("Vites tipi : " + vites_tipi);

}}

Page 12: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Kutulama ve Kutudan

Çıkarma

(boxing & unboxing)

class Boxing

{

public static void Main()

{

int x;

object obj;

x = 10;

obj = x;

int y = (int)obj;

Console.WriteLine(y);

}

}

Page 13: NESNEYE DAYALI PROGRAMLAMA - ioztel.sakarya.edu.tr · Kalıtım •Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir

Object Veri Tipi

class Program{

public static void Main(){

object[] dizi = new object[10];

for (int i = 0; i < 3; i++)dizi[i] = i;

for (int i = 3; i < 6; i++)dizi[i] = (double)i / 2;

dizi[6] = "Generic Array";dizi[7] = true;dizi[8] = 'X';dizi[9] = "end";

for (int i = 0; i < dizi.Length; i++)Console.WriteLine("dizi[" + i + "]: " + dizi[i] + " ");

}}