Kendi sınıflarınızı oluşturma

Projelerinizde kullanılmak üzere sınıf oluşturulması işlemi yorucu görünebilir. Ancak sınıf oluşturulmasının daha zor bir kısmını sınıfın yönteminin, özelliklerin ve olayların tanımlanması görevi oluşturur.

Sınıf tasarlama stratejileri

Nesne tabanlı tasarım konusu karmaşıktır; tüm kariyerler, bu disiplinin akademik çalışmalarına ve profesyonel uygulamasına adanmıştır. Ancak yine de başlangıç aşamasında yardımcı olabilecek birkaç önerilen yaklaşım şunlardır.

  1. Bu sınıf örneklerinin uygulamada oynadığı rolü düşünün. Genellikle nesneler bu üç rolden birini üstlenir:

    • Değer nesnesi: Bu nesneler daha çok veri kapları görevi görür. Bunlar büyük olasılıkla, çeşitli özelliklere ve daha az yönteme sahiptir (veya bazen herhangi bir yönteme sahip değildir). Genelde, açıkça tanımlanmış öğelerin kod olarak temsilleridir. Örneğin, bir müzik oynatıcısı uygulaması tek bir gerçek dünya şarkısı temsil eden bir Song sınıfını ve kavramsal bir şarkı grubunu temsil eden Playlist sınıfını içerebilir.

    • Görüntüleme nesnesi: Bunlar gerçekten ekranda görüntülenen nesnelerdir. Bu nesnelerin örnekleri arasında, açılır liste veya durum gösterimi gibi kullanıcı arabirimi öğeleri, video oyunundaki yaratıklar gibi grafiksel öğeler vb. yer alır.

    • Uygulama yapısı: Bu nesneler, uygulamalar tarafından gerçekleştirilen mantık veya işlemede çok sayıda destekleyici rol oynar. Örneğin, bir biyoloji simülasyonunda bir nesneye belirli hesaplamaları yaptırabilirsiniz. Bir nesneye, bir müzik oynatıcısı uygulamasında arama denetimi ve ses düzeyi bilgisi arasındaki değerleri senkronize etme sorumluluğu verebilirsiniz. Başka bir nesne ise bir video oyunundaki kuralları yönetebilir. Ya da çizim uygulamasındaki kaydedilmiş bir resmi yüklemek için sınıf oluşturabilirsiniz.

  2. Sınıfın ihtiyaç duyduğu belirli işlevleri belirleyin. Farklı işlev türleri genellikle sınıfın yöntemleri olur.

  3. Sınıf bir değer nesnesi görevi görecek şekilde tasarlanmışsa, örneklerin içereceği verileri belirleyin. Bu öğeler, iyi özellik adaylarıdır.

  4. Sınıfınız projeniz için özel olarak tasarlandığından, en önemli şey, uygulamanızın ihtiyaç duyduğu işlevselliği sağlamaktır. Bu soruları kendiniz için cevaplamaya çalışın:

    • Uygulamanız hangi bilgileri saklıyor, izliyor ve işliyor? Bu soruları cevaplamak, ihtiyacınız olan herhangi bir değer nesnesini ve özelliği tanımlamanıza yardımcı olur.

    • Uygulama ne tür eylemler gerçekleştiriyor? Örneğin, uygulama ilk yüklendiğinde, belirli bir düğme tıklatıldığında, bir filmin oynatılması durdurulduğunda vb. ne oluyor? Bunlar iyi yöntem adaylarıdır. “Eylemler” bireysel değerleri değiştirmeyi içerirse bunlar özellikler de olabilir.

    • Herhangi bir eylem için, o eylemi gerçekleştirmek amacıyla ilgiler gereklidir Bu bilgiler yöntemin parametresi olur.

    • Uygulama, işlemi gerçekleştirmek için ilerledikçe, sınıfınızda, uygulamanızın diğer bölümlerinin de bilmesi gereken hangi durumlar değişir? Bunlar iyi olay adaylarıdır.

  5. Eklemek istediğiniz ek işlevsellikten yoksun olması dışında, ihtiyacınız olan nesneye benzer varolan bir nesne var mı? Alt sınıf oluşturmayı göz önünde bulundurun. ( Alt sınıf tüm işlevselliğini tanımlamak yerine, varolan bir sınıfın işlevselliği üzerine kurulan bir sınıftır.) Örneğin, ekranda görsel bir nesne olan bir sınıf oluşturmak için, sınıfınızın temeli olarak varolan bir görüntü nesnesinin davranışını kullanın. Bu durumda, görüntü nesnesi (MovieClip veya Sprite gibi) temel sınıf olur ve sınıfınız bu sınıfı genişletir.

Sınıf için kod yazma

Sınıfınız için bir tasarımınız olduğunda veya en azından ne tür bilgi depoladığını ve ne tür eylem gerçekleştirdiği hakkında fikriniz olduğunda, bir sınıf yazmanın gerçek sözdizimi oldukça basittir.

Aşağıda, kendi ActionScript sınıfınızı oluşturmanız için gereken minimum adımlar verilmiştir:

  1. ActionScript metin düzenleyici programında yeni bir metin belgesi açın.

  2. Sınıfın adını tanımlamak için bir class deyimi girin. class deyimi eklemek için public class sözcüklerini ve ardından sınıfın adını girin. Sınıfın içeriklerini (yöntem ve özellik tanımları) barındırması için açılış ve kapanış küme parantezleri ekleyin. Örneğin:

    public class MyClass 
    { 
    }

    public sözcüğü, sınıfa herhangi bir başka koddan erişilebildiğini belirtir. Diğer alternatifler için, bkz. Erişim denetimi ad alanı nitelikleri .

  3. Sınıfınızı içeren paketin adını belirtmek için bir package deyimi yazın. Sözdizimi, tam paket adı, class deyim bloğunun, ardından açılış ve kapanış küme parantezleri gelen package sözcüğüdür. Örneğin, aşağıdaki işlemi gerçekleştirmek için bir önceki adımdaki kodu değiştirin:

    package mypackage 
    { 
        public class MyClass 
        { 
        } 
    }
  4. Sınıf gövdesinin içinde var deyimini kullanarak sınıftaki özelliklerin her birini tanımlayın. Sözdizimi, herhangi bir değişkeni bildirmek için kullandığınız sözdizimiyle aynıdır ( public değiştiricisi eklenir). Örneğin, sınıf tanımının açma ve kapatma küme parantezlerinin arasına bu satırlar eklendiğinde, textProperty , numericProperty ve dateProperty adındaki özellikler oluşturulur:

    public var textProperty:String = "some default value"; 
    public var numericProperty:Number = 17; 
    public var dateProperty:Date;
  5. İşlev tanımlamak için kullanılan aynı sözdizimini kullanarak sınıfta her bir yöntemi tanımlayın. Örneğin:

    • myMethod() yöntemi oluşturmak için şunu girin:

      public function myMethod(param1:String, param2:Number):void 
      { 
          // do something with parameters 
      }
    • Yapıcı (sınıf örneği oluşturma işleminin bir parçası olarak çağrılan özel yöntem) oluşturmak için, adı sınıfın adıyla tamamen eşleşen bir yöntem oluşturun:

      public function MyClass() 
      { 
          // do stuff to set initial values for properties 
          // and otherwise set up the object 
          textVariable = "Hello there!"; 
          dateVariable = new Date(2001, 5, 11); 
      }

      Sınıfınıza yapıcı yöntemi dahil etmediyseniz, derleyici sınıfınızda otomatik olarak boş bir yapıcı oluşturur. (Başka bir deyişle, parametreye ve deyime sahip olmayan bir yapıcı.)

    Tanımlayabileceğiniz bir kaç adet daha sınıf öğesi vardır. Bu öğeler daha karmaşıktır.

    • Erişimciler , bir yöntem ile özellik arasında özel bir köprüdür. Sınıfı tanımlamak için kodu yazdığınızda, erişimciyi bir yöntem şeklinde yazarsınız. Bir özelliği tanımladığınızda tek gerçekleştirebildiğiniz işlem olan yalnızca bir değer okuma veya atama yerine, bir çok işlem gerçekleştirebilirsiniz. Ancak sınıfınızın bir örneğini oluşturduğunuzda, değeri okumak veya atamak için yalnızca adı kullanarak erişimciyi bir özellik gibi değerlendirirsiniz.

    • ActionScript'teki olaylar, belirli bir sözdizimi kullanılarak tanımlanmaz. Bunun yerine, EventDispatcher sınıfının işlevselliğini kullanarak sınıfınızda olayları tanımlarsınız.