Programlamadili.Net Yeni Nesil Programlama Portali
Makale Ara: 
Kullanıcı Adı : Şifre :
  • Makale Kategorileri
Anasayfa
ACPI [0]
Action Script [5]
Ajax [7]
ASP [12]
ASP.NET [23]
Assembly [3]
Bash [1]
C [4]
C# [9]
C++ [10]
Cobol [1]
Delphi [31]
Flash [5]
Html [9]
JAVA [36]
Java Script [12]
JSF [2]
Jsp [6]
Lua [1]
Matlab [2]
MySQL [30]
Oracle [1]
Pascal [31]
Perl [4]
Photoshop [2]
PHP [154]
Python [8]
REXX [6]
Ruby [1]
SEO [5]
Visual Basic [37]
  • Gorsel Ders Kategorileri
Asp [25]
Asp.Net [5]
Csharp [33]
Delphi [3]
Fireworks [4]
Flash [10]
Java Script [0]
Photoshop [0]
PHP [55]
Vb.Net [9]
Visual Basic [4]
  • Dil
English
Deutsch
deutsch
  • Reklam Alani
JAVA / Kalıtım yoluyla alt sınıfa bağlanmış üst sınıf referansı üzerinden alt sınıfı çağırma
Kalıtım yoluyla alt sınıfa bağlanmış üst sınıf referansı üzerinden alt sınıfı çağırma
Yazar: FERDIKUCUK
Eklenme: 25/01/08    Okunma: 247    
 
 

Yukarıda nokta ve daire sınıflarını tanımlamıştık. Baska bir sınıftan kalıtım yoluyla türeyen sınıfın(dairenin noktadan kalıtım yoluyla türemesi gibi), üst sınıfın adresi(tanımı) üzerinden programın içinde aktarımı mümkündür.


 



import java.awt.Graphics;


import java.applet.Applet;


 


public class noktatesti extends Applet


{


  private nokta noktaref,n;


  private daire daireref,d;


  public void init()


  {


  n=new nokta(30,50);


  d=new daire(2.7,120,89);


  }


  public void paint(Graphics g)


  {


  //once noktamızı ve dairemizi yazdıralım


  g.drawString("Nokta n : "+n.toString(),25,25);


  g.drawString("Daire d : "+d.toString(),25,40);


  //c dairesinin adresini nokta olarak tanmlanan noktaref e aktaralm


  noktaref=d;


  g.drawString("Daire(noktaref uzerinden) :"+noktaref.toString(),25,70);


  //noktaref nesnesini daireref degiskenine aktaralm


  daireref=(daire)noktaref;


  g.drawString("Daire(daireref uzerinden) :"+daireref.toString(),25,85);


  g.drawString("Dairenin alani(daireref uzerinden) :"+daireref.alan(),25,100);


  }


}



Şekil 3.8.1 noktatesti.java sınıfında üst sınıf üzerinden adres referansı kullanımı


 


Şekil 3.8.1 de görülen noktatesti.java sınıfında n nokta sınıfı nesnesi ve noktaref noktasinifi nesnesi ve d ve daireref daire sinifi nesneleri tanımlanmiştır. İnit metodunda p ve c nesnelerinin adresleri kurucu metodu new deyimiyle taşıyarak tanımlanmiştir. Dahasonra noktaref=d; deimiyle aslında daire sınıfından olan d nesnesi nokta sınıfından tanımlanan noktaref nesnesinin adresine yüklenmiştir. Programda da görüldüğü gibi noktaref üzerinden daireyi kullanmak mümkündür çünki nokta dairenin kalıtın yoluyla üst sınıfıdır. Aynı zamanda cast işlemcisi (daire) terimini kullanarak noktaref’i daireref’e aktarmak da mümkün olmuştur. Bu aktarma nokta dairenin super sınıfı olmasa başarılamazdı. Bazen sadece bu süper sınıf aktarımını saglamak amacıyla sınıf hiyerarşisinin en tepesine aslında belli bir görevi olmıyan abstract sınıflar yerleştirilir. Bu sınıfın alt sınıfları olarak tanımlanan tüm sınıflar bu sınıf adresinden yararlanılarak aktarılabilir. Abstract sınıfların tanımında abstract sözcüğü kullanılır. Abstract tür metodların içinde metodların sadece başlıkları verilip tanımları yapılmıyabilir. (metodun ana gövdesi tanımlanmıyabilir). Abstract super sınıfının kullanılmasına şöyle bir örnek verebiliriz : sekil isimli bir abstract sınıfın alt sınıfları olarak daire,üçgen,dikdörtgen ve kare sınıflarını olusturduğumuzu ve bu sınıfların herbirinin kendi şeklini çizecek ciz metodunu içerdiğini düşünelim. Programı yazarken abstract sınıf sekilde de alan metodu tanımı yaparız. Ve sekil sınıfından bir nesne tanımlarız. Program calışırken sekil üzerinden istediğimiz alt şeklin çizimi dinamik olarak her biri için atrı adres tanımlamadan mümkün olur. Aynı şekilde bir nümerik analiz programı yazarken, örneğin her değişik fonksiyon için ayrı ayrı integral metodu yazma yerine abstract tür bir fonksiyon için integral programını yazar ve gerçek foksiyonumuzu tanımladığımız sınıfı bu abstract sınıfın alt sınıfı olarak tanımlarız.


Bu kavramı daha sonraki bölümlerimizde daha geniş örneklerle açıklamaya çalışacağız.




Taglar: 41 Tek boyutlu degiskenler Ayni adli metodlarin bir arada kullanilmasi overloading Cok boyutlu degiskeneler Diger metotlar Grafikler, Fontlar ve Renkler Graphics sinifi Graphics sinifi Java API Kutuphanesi Java Derleme ve Calistirma Windows Icin Java Dilinin temel komutlari Java Platformu Java Polygon cizimi Java Programlama dili temel degisken turleri Java programini yazma ve calistirma java da Cizgi cizimi java da Oval ve acili oval cizimi Java da this deyiminin kullanimi Javada Aritmetik islemler Javanin Kullanim Alanlari Javanin Ozellikleri Javada Mantiksal islemler Javada Metodlarin kendi kendini cagirmasi Recusion Javada Metotlar JRE ve SDK Kalitim yoluyla alt sinifa baglanmis ust sinif referansi uzerinden alt sinifi cagirma

Isminiz:
E-mail adresiniz:
Güvenlik Kodu:
  
 

 

Istatistikler ,
Sitemizde su anda 31 kategori, 458 makale , 148 görsel ders ve 1953 Ziyaretci bulunmaktadir...
Toplam üye sayimiz : 1118

Web Stats

Copyright © 2007 Programlamadili.net - Programlama & Tasarim: Recep Ikiz & Ferdi Küçük

| Site Haritasi |

"Ne Aradığını Bilmeyen Bulduğunun Farkına Varamaz "
ACPI Programlama dili, Action Script Programlama dili, Ajax Programlama dili, ASP Programlama dili, ASP.NET Programlama dili, Assembly Programlama dili, Bash Programlama dili, C Programlama dili, C# Programlama dili, C++ Programlama dili, Cobol Programlama dili, Delphi Programlama dili, Flash Programlama dili, Html Programlama dili, JAVA Programlama dili, Java Script Programlama dili, JSF Programlama dili, Jsp Programlama dili, Lua Programlama dili, Matlab Programlama dili, MySQL Programlama dili, Oracle Programlama dili, Pascal Programlama dili, Perl Programlama dili, Photoshop Programlama dili, PHP Programlama dili, Python Programlama dili, REXX Programlama dili, Ruby Programlama dili, SEO Programlama dili, Visual Basic Programlama dili,
Reklam alanı