Previous
Next

JAVA - Inheritance(Kalıtım) nedir?

by Cem Kefeli 28. Kasım 2010 03:44

JavaDaha önce nesneye yönelik bir dilin olmazsa olmazlarından birisi olan kalıtım(Inheritance) konusundan "Polymorphism nedir?" başlıklı yazım içerisinde bahsetmiştim. Çünkü çok biçimlilik(Polymorphism) kalıtım ile oldukça iç içe geçmiş ve kalıtımın yok açtığı doğal sonuçların bir uygulaması olarak göze çarpmaktadır. Dolayısı ile kalıtımın olmadığı bir ortamda çok biçimlilikten söz etmek olanaksızdır.

OOP(Object Oriented Programming) diyorsak nesnelerden bahsediyoruz demektir. Herşey nesne olarak düşünülebilir. Nesneler ise birbirlerinden türeyebilmektedir. Örneğin bir ana sınıf düşünün aklınızda, bir de bu ana sınıfın yavrucuklarını düşünün. Yavrucukları diyorum ama, bunu yavru sınıflar daha küçüktür, daha az öğe içerir gibi düşünmeyin sakın. Tam tersine bu yavrucuklar daha gelişkin olabilirler. Annelerinin tüm özelliklerine sahip olurlar da, hatta bir de annelerinden farklı başka özellikler de içerebilirler. Bu yavrucukların da yavrucukları olabilir. Bu böyle devam eder gider. Hemen aşağıda kalıtımın olduğu bir ortamdan ve bunun uygulamalarından bahsetmeye çalışacağım.

Sağ tarftaki UML diagramında bir kalıtım yapısı bulunmakta. TASIT ana sınıfı(Base class) BenNeyim isminde bir fonksiyon ve integer türünde Deger1, Deger2, Deger3 isimli üç farklı değişken bulundurmaktadır. TASIT sınıfına ait BenNeyim isimli fonksiyon kendisinin bir taşıt olduğunu belirten log yazdırmaktadır. MOTORLUTASIT ve MOTORSUZTASIT sınıfları ise TASIT ana sınıfından türemekte ve Deger4 isimli integer türünden bir değişken bulundurmaktadır. Java dilinde türetme işlemleri extends anahtar sözcüğü ile yapılmaktadır. Deger4 ise ana sınıfta bulunmayan ve türeyen sınıflar(Derived class) ile birlikte gelen bir değişkendir. Peki ya ana sınıftaki Deger1, Deger2, Deger3 isimli değişkenlere ne oldu? Acaba yeni türeyen MOTORLUTASIT ve MOTORSUZTASIT sınıfları içerisinden bu değişkenlere erişip kontrol edebilir miyim ki? Bu sorularımıza ve merakımıza biraz daha gem vuruyor ve şimdilik aklımızın bir köşesine yazarak az sonra öğrenmek için bir kenera bırakıyoruz. Dikkat edilirse yeni türettiğimiz Inheritance UML sınıflar ile birlikte güzel bir ayrıntı gözümüze çarpar oldu. Artık " Türeyen her sınıf, ana sınıfı içerir" diyebiliriz kolay bir şekilde. Yani bir bakıma her MOTORLUTASIT ve MOTORSUZTASIT aslında birer TASIT'tır demek oluyor bu. İşte aralarında bu şekilde ilişki kurulabilen her ortamda kalıtımdan söz etmek mümkündür. Bu bahsettiğimiz 'IS A' ilişkisi olarak bilinmektedir. ("MOTORLUTASIT IS A TASIT" == MOTORLUTASIT bir TASIT'tır.) Yine bu türemiş sınıflara ait BenNeyim fonksiyonu da sınıfın ne olduğunu yazdırmaktadır. TAKSI ve OTOBUS, MOTORLUTASIT sınıfından türeyen sınıflardır. Fakat bu sınıfların kendisine özgü başka değişkenleri oluşturulmamıştır. Oluşturulma zorunluluğu da yoktur zaten. Ana sınıf içerisinde soyut(Abstract) olarak belirtilmedikçe override edilmesine gerek yoktur. Fakat ana sınıf içerisinde soyut olarak tanımlanmış bir öğenin alt sınıf içerisinde mutlaka override edilme zorunluluğu bulunmaktadır. Yazının ilerleyen bölümlerinde bu konuları daha detaylı inceleyeceğiz. Yalnızca MOTORLUTASIT sınıfına da kalıtım yolu ile geçen BenNeyim fonksiyonu iptal edilmiş(Override) ve kendisine özgü bir içerik oluşturulmuştur. Aynı şeyleri OTOBUS sınıfı için de söylemek mümkündür. BISIKLET sınıfı ise MOTORSUZTASIT sınıfından türemektedir ve tıpkı TAKSI ve OTOBUS gibi kendisine özgü yeni değişkenleri bulunmamaktadır. TAKSI, OTOBUS ve BISIKLET sınıflarının üçüde kalıtım ile kendilerine geçen BenNeyim fonksiyonu içerisine kendisinin ne olduğunu yazdıran yeni kod blokları eklemişlerdir. Yukarıda sorduğumuz sorunun bi benzeri de burda söz konusudur. MOTORLUTASIT ve MOTORSUZTASIT türemiş sınıfları içerisinde yeni oluşturulan Deger4 isimli değişkeni acaba TAKSI, OTOBUS ve BISIKLET sınıfları içerisinde kullanabilir miyim? En alt sınıf olan TASIT sınıfı içerisinde bu değişkenin olamamasına rağmen. İşte şimdi yavaş yavaş bu UML diagramına göre hazırlanmış ve bazı eklentiler yapılmış aşağıdaki kod bloğuna bakma ve sorularımızın cevabını alma vakti geldi. Fazlası...

Atatürk'ün kendi sesinden TBMM beşinci dönem ikinci toplanma yılı açılış konuşması

by Cem Kefeli 6. Kasım 2010 04:44

Sayın Millet Vekilleri!

Sizi, sevgi ve saygılarımla selamlayarak, beşinci devrenin ikinci senesini açıyorum.

Derhal söylemeliyim ki, bu seneki çalışmalarımızın da, memleket ve millet işlerinde, yeni iyilikler ve ilerlemeler yapacağına kaniim.

Geçen yıl, Türk milleti huzur ve sükun içinde, milli ve insani ülkeye, aşk ile koşan kuvvetli ve çalışkan bir varlık gösteriyordu. İdarede ve adliyede yeni kanunların ve yeni teşkilatın, vatandaşı sevindiren neticeleri görülüyordu. Ekonominin her sahasında ve memleketin her tarafında Türkler kendilerine ve devletlerine tam bir güven içinde çalışıyorlardı. Cumhuriyet, yeni ve sağlam esaslariyle, Türk milletini emin ve metin bir istikbale koyduğu kadar, asıl fikirlerde ve ruhlarda yarattığı güvenlik itibariyle, büsbütün yeni bir hayatın müjdecisi olmuştur...

YouTube yasağı kaldırıldı

by Cem Kefeli 30. Ekim 2010 12:59

Youtube yasakları kalktı...Youtube yasakları kaldırıldı...
Türkiye'den YouTube'a erişim 2.5 yıldır engelliydi ve en sonunda bu engel bugün kalktı. Yasağın nedeni olan büyük önderimiz Atatürk'e hakaret içeren içerikler ise siteden kaldırıldı. Zaten de problem bu şekilde çözülmüş oldu. Bir telif ajansı Atatürk'e hakaret içeren videoları haklarını satın alarak, YouTube'dan kaldırdı. Ankara Savcılığı da re'sen harekete geçti ve erişim engelini kaldıracak adımı attı. Savcılık, Telekomünikasyon İleşim Başkanlığı'na ''erişime izin verin" dedi.

YouTube'a erişim, Ankara 1. Sulh Ceza Mahkemesi kararıyla 5 Mayıs 2008'den beri engellenmekteydi.

Video paylaşım sitesi YouTube, Türkiye'de erişim yasağının nasıl kaldırıldığı konusundaki incelemelerinin sürdüğünü bildirdi. YouTube yetkililerince yapılan yazılı açıklamada, Türkiye'de bazı kullanıcıların Youtube'a tekrar erişebildikleri bilgisinin alındığı belirtilerek, bu gelişmelerin izlendiği kaydedildi. Açıklamada, "Türkiye'de kapatmaya neden olan videolar, YouTube tarafından değil, üçüncü bir kuruluş tarafından mevcut 'otomatik telif hakları şikayet' uygulamamız kullanılarak kaldırılmıştır. Bu şikayetin telif hakları politikamıza uygun olup olmadığı ile ilgili araştırmalarımız devam etmektedir"
denildi.

Kaynaklar: CNN Türk 

Kategoriler: Güncel | Teknoloji

Neden Linux?

by Cem Kefeli 24. Temmuz 2010 11:49

Bu soru çok popüler bir soru, hem de çok çok uzun zamandır. Windows kullanan birisine sorsanız deseniz ki "Neden Linux kullanmıyorsun?" %70-80'inin vereceği cevabı tahmin edebiliyorum; O da ne diyecektir büyük ihtimal. LinuxAma bir Linux kullanıcısına sorsanız "Neden Windows Kullanmıyorsun?" diye. İşte o zaman işler değişir. "Ahhh, ah... " diye başlar heralde cümleye. Söyleyecek, kafasında, zihninde biriktirdiği o kadar çok şey vardır ki, Windows'tan dertlendiği o kadar çok şey vardır ki büyük ihtimal hemencecik sıralayıverir bunları...

Peki Windows bu kadar kötü de Linux bu kadar iyi, sütten çıkmış ak kaşık mı? Ya da Windows çok mu kötü bir sistem. Bence hiç alakası yok... Aslında Bu işletim sistemlerinin hedef kitlesinden kaynaklanıyor büyük ölçüde. Ben şimdiye kadar bilgisayar ve teknolojiyle çok haşır neşir olmayan birisinden "Geçen bir RedHat kurdum, performansı acayip bişey..." diye birşey duymadım. Teyzeme sorsam "Bilgisayar alayım nesi olsun diye?" msn'i olsun, word'ü olsun, tablo çizecem excel'i olsun, sunum yapacam powerpoint'i olsun bi de film izlicem media player'ı olsun der. Bunları çoğu kişi der çünkü çok kalıplaşmış ve çok kullanılan şeyler. Ama işlemciyi boş zamanlarında daha iyi dinlendirsin, hemen açılsın hemen kapansın, çok fazla RAM yemesin, Virüs tehtidi daha az olsun, sistem gün geçtikçe yavaşlamasın demek aklına gelmez. Çünkü farkında değildir ki bunların.

Şimdi en başa geri dönecek olursak, "Neden Linux?" sorusunun cevabı aşağıda;

  • Virüs tehtidi azdır.
  • Daha kararlı bir sitemdir.
  • Sistemi kurduktan sonra geçen her bir gün yavaşlamaz. (Kısmen)
  • Her yaptığınız önemli değişiklik sonrasında sistemi yeniden başlatmak durumunda kalmazsınız.
  • Birçok ücretsiz yazılım desteği.

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General