Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Java

Java Object Oriented Programming temeline dayanan, çok işlevli, step by step işleyen dilin dökümanlarının paylaşım alanı.




Abstract Class ve Methodlar

Java

Yeni Konu aç Cevapla
 
Seçenekler
Alt 04-12-2008 14:13   #1
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
09/2008
Nereden
VAN
Mesajlar
Konular

Teşekkür (Etti): 86
Teşekkür (Aldı): 3601


Cool Abstract Class ve Methodlar



Abstract ın türkce karşılığı “soyut” demektir , pekii neden soyut class lara ihtiyaç duyarız ? Abstract ın türkce karşılığı “soyut” demektir , pekii neden soyut class lara ihtiyaç duyarız ? DenemeSurusu3.java örneğini incelersek ; ana class olan Araba.class ının bir birleştirici rol oynadığı görülür . Yani kendinden türeyen tipler için bir ortak arayüzler(methodlar) sağlar . Olaylara bu açıdan bakarsak ana class lara “kukla “ diyebiliriz ve bu ana class ın methodlarının çağrılması bazı durumlarda hata bile oluşturabilir. İstenilen aslında şudur , ana class oluşturmak ve sonra bu ana class dan türemiş class lar türetmek ve türemiş class lara kendilerine has davranışları oluşturmak , override ile .

“Kukla“ class diye tabir edebileceğimiz class ları java da Abstract class olarak tanımlarız . Bir class ın Abstract olabilmesi için metodlarından en az birinin abstract method olması gerekir.

abstract **** sur();

Abstract methodlar kesinlikle türeyen class larda override edilmek zorundadır.
Eğer override edilmez ise compile-time da hata yerseniz .



Yukarıdaki şemayı koda dökelim :

// abstract class ve methodlar
abstract class Araba
{
public abstract **** sur() ;
public **** dur() {
System.out.println("Araba dur");
}
}

class YarisArabasi extends Araba
{
public **** sur() {
System.out.println("YarisArabasi sur");
}

public **** dur() {
System.out.println("YarisArabasi dur");
}

public **** hizYap() {
System.out.println("Hizzzz Yapp");
}
}

class AileArabasi extends Araba {

public **** sur() {
System.out.println("AileArabasi sur");
}

public **** dur() {
System.out.println("AileArabasi dur");
}

public **** konforOlustur() {
System.out.println(" AileArabasi KonforOlustur( )");
}
}


class YukArabasi extends Araba {

public **** sur() {
System.out.println("YukArabasi sur");
}

public **** dur() {
System.out.println("YukArabasi dur");
}

public **** frenABS() {
System.out.println(" YukArabasi frenABS() ");
}
}

class GencArabasi extends AileArabasi
{
public **** sur() {
System.out.println("GencArabasi sur ");
}

public **** kontrolSistemi() {
System.out.println(" GencArabasi kontrolSistemi() ");
}
}

public class DenemeSurusu4 {


public **** hepsiniSur(Araba[] ar) {

for (int i = 0 ; i < ar.length ; i ++ )
{
ar[ i ].sur();
}
}


public static **** main(String args[]) {
DenemeSurusu3 ds3 = new DenemeSurusu3();
Araba[] ara_ar = new Araba[4] ;
int sayac = 0 ;
// Array e eklerken upcasting oluyor
ara_ar[sayac++] = new AileArabasi();
ara_ar[sayac++] = new YarisArabasi();
ara_ar[sayac++] = new YukArabasi();
ara_ar[sayac++] = new GencArabasi();
// ara_ar[sayac++] = new Araba(); !! hata !!
// abstract class lar yaratilamazlar .
ds3.hepsiniSur( ara_ar );
}
}//^



DenemeSurusu3.java ile bu örnek arasındaki tek fark Araba.class ının abstract hale getirilmesi . sur() metodu artik abstract bir method ve Araba tipinden türeyen her yeni tip sur() metodunu override (ezmek) zorundadır.

Araba.class ındaki dur() methodu eski haline korumaktadır ve Araba tipinden dan türeyen diğer tiplerler bu methodu KESİNLİKLE ezmek zorunda değiller ama isterlerse ezebilirler.Buradan şu sonucu çıkarabiliriz ; Abstract class ların içinde en az bir tane abstract method bulunmak zorundadır ve bir class ın abstact olması bu class içersine fonksiyonel method bulunmayacağı anlamına gelmez .

Son olarak da dikkat çekmek istediğim konu , abstract class ların new anahtar kelimesi ile yaratılamamaları.Abstract class lar kesinlikle en az bir tane abstract method (fonkisiyonelitesiz method ) içerdiklerinden dolayı mantıklı bir engelleme .



___________________________________________

CeHeNNeMDe MeVSiM YoK GüZeLiM HeP YaNaCaKSiN...!


HizLi Yaşa GeNÇ ÖL...!







ESKiLeR TaNıR YeNiLeR ÖRNeK ALıR...!
 Offline  
 
Alıntı ile Cevapla
Alt 13-01-2009 14:27   #2
  • Forumdan Uzaklaştırıldı
  • Üye Bilgileri
Üyelik tarihi
01/2009
Nereden
Rıddıck’ın Günlükleri.
Yaş
30
Mesajlar
Konular

Teşekkür (Etti): 35
Teşekkür (Aldı): 121




paylaşım güzel eline sağlık
 Offline  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2019

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı

Google+

web tasarım

wau