ActionScript 3.0: Nesne Yönelimli Programlama III: Package (Paketler)
İsim karışıklığını önlemek için sınıfların saklandığı alt klasörlerdir. “.as” uzantılı dosyalar, kendi kullanım amaçlarına uygun bir klasör adıyla saklanırlar. Özellikle büyük projelerde çalışırken, çok fazla sınıf yapısına ihtiyaç duyulacağı için bunları doğru olarak sınıflandırmak gerekecektir. Bu noktada paketlerler, ortak amaca sahip sınıfları bir arada tutmak için tercih sebebidir.
Paket oluşturmak için, “package” anahtar sözcüğü ve onun kapsamını belirten köşeli parantezlere { } ihtiyaç vardır.
“package” anahtar sözcüğü sınıflardan önce belirtilmeli ve sınıflar “package” kapsamında olmalıdır.
Paket isimleri “package” anahtar sözcüğünden sonra gelmeli ve de kapsadığı sınıfların özelliğini andırır olmalıdır.
Bu örnekte, “canlilar” adlı paketin içinde “Papatya” sınıfı oluşturulmuştur.
Bu paket örnekeğinde ise; “canlilar” adlı klasörün altındaki “hayvanlar” adlı klasörün içinde “Fil” adlı sınıf oluşturulmuştur. Klasörler aynen işletim sisteminde olduğu hiyerarşik yapı içinde oluşturulabilir. Eğer projeniz çok büyük ise, klasör altında klasör mantığı sınıfları saklamak için geçerli olabilir.
Paketlerdeki Sınıfları İthal Etmek
Paket içindeki bir sınıfı veya sınıfları başka bir sınıf içinde kullanmanız gerekebilir. İhtiyacımız olan sınıf dosyalarını çağırırken “import” anahtar sözcüğü ve sınıf dosyasının yolu belirtilir.
import com.arabalar.*;Burada “com” adlı klasörün altındaki “arabalar” adlı klasörün altında olan “.as” uzantılı sınıf dosyaları çağrılıyor. (*) asteriks karakteri, paket içindeki tüm sınıfları temsil eder.
“import” anahtar sözcüğü sınıf tanımlamasından önce programın ilk satırında kullanılmalıdır.
Program içinde “import” ile ithal edilen sınıfları kullanırken, o sınıflara ait nesne örneği oluştururken paket ismini kullanma ihtiyacı ortadan kalkar.
import com.arabalar.*;
var yaris:Hiz=new Hiz();
var sekil:Renk=new Renk();Örnekte, (*) karakteri ile tüm sınıflar çağrıldığı için ayrıca paket yolunu belirtmeye gerek kalmadı.
Eğer, “import” anahtar sözcüğü kullanmadan sadece “com” klasörünün altındaki “arabalar” klasörünün içindeki “Hiz” sınıfı ithal edilecekse; o zaman sınıf örneği oluştururken paketin tam yolu belirtilmelidir.
var yaris:com.arabalar.Hiz =new com.arabalar.Hiz ();Eğer iki farklı paketteki aynı isme sahip iki sınıf ithal edilecekse, isim karışıklığı oluşur ve derleyici hangi sınıfın hangi pakete ait olduğunu anlayamaz. Bu sorunu ortadan kaldırmak için sınıfların paket içindeki tam yolları belirtilerek örnekleri oluşturulmalıdır.
import com.arabalar.Hiz;
import com.ucaklar.Hiz;
var arabayaris:Hiz=new Hiz(); // Sınıf adı karışıklığı
var ucakyaris:Hiz=new Hiz(); // Sınıf adı karışıklığı
var arabayaris:com.arabalar.Hiz =new com.arabalar.Hiz (); // Doğru
var ucakyaris:com.ucaklar.Hiz =new com.ucaklar.Hiz (); // DoğruYazan: Muttalip TULGAR