ActionScript 3.0 : Nesne Yönelimli Programlama VII : Interfaces (Arabirimler)
Muttalip TULGAR Tarih: 1/10/2008 Yorum: 2 adet
Okunma : 672 Tutanlar: Bu yazıyı 2 kişi tuttu.
Sınıflar arasında iletişim kurmada kullanılan bir yöntemdir. Özellikle büyük flash projelerinde ortak bir yaklaşım oluşturmak adına iyi bir çözümdür. Projede yer alan bütün sınıfların kullanacağı ortak metotlar için belirli kurallara dikkate edilmesi gerekecektir. Bu kurallar interfaceler’in yardımıyla belirlenmektedir. Aslında interfaceler, sınıflarda ortak olarak kullanılacak tüm metotların nerede kullanılacağını, metotların veri tipini ve dönüş değerlerini kontrol etmede tercih edilmektedir.
Tabiî ki günlük çalışmalarda interfaceleri kullanmayı çok da tercih edileceğini söylemek doğru olmaz. Ancak çok büyük projelerde çalışıyorsanız veya projenizin büyüyeceğini düşünüyorsanız modüler bir yapı için interfaceleri kullanabilirsiniz.
Interface, bir sınıf için şu bilgileri tanımlayabilir:
- Public sınıfın metot kapsamını
- Metot ismini
- Metot parametreleri ve onlara ilişkin veri tiplerini
- Metotların dönüş tipini
Interface, bir sınıf için şu bilgileri tanımlayamaz:
- Sınıf özellikleri
- Değişken ve sabitleri (get ve set hariç)
- Private ve static metotları
- Metotlar içindeki herhangi bir kodu (tanımlama)
Ayrıca; – Interfaceler de sınıflar gibi .as uzantılı dosya olarak kaydedilir. – Interface tanımlamada "interface" anahtar sözcüğü kullanılmalıdır. – Interface adlarını yazarken de sözcüğün başına "I" harfini koymak alışılagelmiş bir programcılık kullanımıdır.
interface IDeneme
.
- Tanımlanan Interface’lerin sınıflara uygulanabilmesi için "implements" anahtar sözcüğü kullanılmalıdır. -Bir interface’in diğer bir interface’in özelliklerine ulaşabilmesi için "extends" anahtar sözcüğü kullanılmalıdır.
interface ISehir extends IUlke
.
- Bir sınıfa birden fazla interface uygulanabilir.
public class televizyon implements IKumanda, IRenk, IEkranBoyutu
Aşağıdaki kod satırlarında interface’ler "televizyon" sınıfına uygulanmıştır. Bir veya birden çok interface bir sınıfa uygulandığında şunlara dikkat etmek gerekir:
- Sınıf içindeki metot ile içindeki metot isimleri aynı olmalıdır.
- Sınıf içindeki metot "public" erişim özelliğine sahip olmalıdır.
- Sınıf içindeki metodun parametre sayısı, interface içindeki metodun parametre sayısı ile aynı olmalıdır.
- Sınıf içindeki metodun veri dönüş tipi ile interface içindeki metodun veri dönüş tipleri aynı olmalıdır.
interface IKumanda
{
function kumandaTuslari(tus:Number):Number;
}
interface IRenk
{
function televizyonRenkleri(renk:String):String;
interface IEkranBoyutu
{
function ekranBoyutu(boyut:Number):Number;
}
package
{
public class televizyon implements IKumanda,IRenk,IEkranBoyutu
{
public function kumandaTuslari(tus:Number):Number;
public function televizyonRenkleri(renk:String):String;
public function ekranBoyutu(boyut:Number):Number;
}
}
}
Yazan: Muttalip TULGAR
Not: ActionScript 3.0 : Nesne Yönelimli Programlama dersleri sona ermiştir. "ActionScript 3.0 : Olaylar I (Events)" dersinde görüşmek üzere.
Eleştiriniz için teşekkür ederim. Sizin verdiğiniz örnek daha açıklayıcı olmuş. Eminim ki dersi okuyanlar için daha tatmin edici bir çalışma olmuştur. Katkılarınızı her zaman bekliyeceğim..
Makale
Etkinlikler
Toplantı
Kahraman ve need4code.com Projesi Connect Toplantısı
Kahraman ve need4code.com Projesi Connect Toplantısı
Selam arkadaslar,
Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 3Aralık...
Kategori:
Toplantı
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 299 (0 kayıtlı, 299 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız









Merhabalar,
Yazilariniz icin oncelikle tesekkurler. Zaman ayirip bildiklerini paylasan fazlaca gelistirici goremiyoruz, o acidan cok memnun oldum boylesi bir yazi dizisinden.
Ancak, Interface’ler konusunda verdiginiz ornegin sozdizimi acisindan dogru olmasina ragmen anlamsal ve kullanim acisindan beni tatmin etmedigini soylemek istedim. Bunu biraz konusup tartisalim istiyorum.
Interface yaygin olarak polimorfizm icin kullanilir. Yani, "Her yigit yogut yer ama her yigidin yogurt yemesi baskadir" sozunu programlamak icin kullanilir.
Sonucta elimizde bir "Yigit" tipinde biri varsa onun yogurt yedigini ancak nasil yedigini bilmiyoruz:
Televizyon orneginin polymorfizme cok iyi bir ornek olmadigini dusunuyorum, o nedenle yukaridaki ornegi (sozdizimi hatalari olabilir) vermek istedim. Belki bir katkisi olabilir.
Tekrar tesekkurler