nesneye dayali programlama - ioztel.sakarya.edu.tr · kalıtım •biribiri ile bağlantılı bir...
Post on 30-Sep-2020
20 Views
Preview:
TRANSCRIPT
NESNEYE DAYALI
PROGRAMLAMA
9. HAFTA UYGULAMA DERSİ
KALITIM
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
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();}
}
Ü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);}
}
Ü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());
}}
Ü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);}
}
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);
}
}
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();}
}
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();}
}
Ö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);
}}
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);
}
}
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] + " ");
}}
top related