Swift 5.3 Yapılar Ve Sınıflar (Structures and Classes)

Yapılar ve sınıflar , program kodunuzun yapı taşları haline gelen genel amaçlı, esnek yapılardır. Sabitleri, değişkenleri ve işlevleri tanımlamak için kullandığınız sözdizimini kullanarak yapılarınıza ve sınıflarınıza işlevsellik eklemek için özellikler ve yöntemler tanımlarsınız.

Diğer programlama dillerinin aksine Swift, özel yapılar ve sınıflar için ayrı arayüz ve uygulama dosyaları oluşturmanızı gerektirmez. Swift’te, tek bir dosyada bir yapı veya sınıf tanımlarsınız ve o sınıfa veya yapıya harici arabirim otomatik olarak diğer kodların kullanımına sunulur.

Bir sınıf örneği geleneksel olarak nesne olarak bilinir . Ancak, Swift yapılar ve sınıflar diğer dillerde çok daha yakın işlevselliği vardır ve bu bölümün çok örnekleri için geçerlidir işlevsellik açıklanır ya bir sınıf veya bir yapı türü. Bu nedenle, daha genel terim örneği kullanılır.

Yapıları ve Sınıfları Karşılaştırma

Swift’teki yapıların ve sınıfların birçok ortak noktası vardır. Her ikisi de şunları yapabilir:

  • Değerleri saklamak için özellikleri tanımlama
  • İşlevsellik sağlamak için yöntemler tanımlama
  • Alt simge sözdizimini kullanarak değerlerine erişim sağlamak için abonelikleri tanımlama
  • Başlangıç ​​durumlarını ayarlamak için başlatıcıları tanımlayın
  • İşlevlerini varsayılan bir uygulamanın ötesine genişletmek için genişletilebilir
  • Belirli bir türden standart işlevsellik sağlamak için protokollere uyun

Sınıflar, yapıların sahip olmadığı ek yeteneklere sahiptir:

  • Kalıtım, bir sınıfın diğerinin özelliklerini miras almasını sağlar.
  • Tür dökümü, çalışma zamanında bir sınıf örneğinin türünü kontrol etmenizi ve yorumlamanızı sağlar.
  • Deinitializers, bir sınıf örneğinin atadığı kaynakları serbest bırakmasını sağlar.
  • Referans sayımı, bir sınıf örneğine birden fazla referansa izin verir.

Kaynak :Apple

Syntax Ve Tanımlama

dde

  • Yapıyı struct ile Sınıfı ise Class ile tanımlıyorum.
  • Java’da yapıcı methodları biliyorsanız benzer oldugunu bilin.
  • Burada yapı olarak ekran çözünürlüğünü aldık.Bu yapı genişlik ve yükseklik olarak iki özelliği sahip oldu ve default olarak 0 atadık .
  • Videomode Class’ım ise görüntünün bazı temel özelliklerini barındırıyor.Çözünürlük,titreşim,hızı,isim .
  • Videomode Class’ımda değişken özeliklerimi baktığımızda çözünürlük değerini ekrançözünürlüğü isimli yapıdan aldığını görüyoruz.Titreşimse ya vardır ya yoktur bu yüzden bool tipi olarak tanımlarız.Kare sayısı ise değişkenlik göstereceği için onuda tanımladım.Ayrıca bazı ekranların kendine ait isimleri vardır (wide angle) gibi ama bazılarının ise isimleri yoktur bu yüzden optinal olarak yani isteğe bağlı olarak tanımladım.

Yapı ve Sınıf Örnekleri

Ekran çözünürlüğü Yapı tanımı ve VideoModesınıf tanımı yalnızca belirli bir çözünürlük veya video modunu tanımlamazlar. Yapının veya sınıfın bir örneğini oluşturmanız gerekir.

  • Yapılar ve Sınıflar Initialization (Başlatıcı) söz dizimini kullanır.Biz () ifadesi ile sınıfın veya yapının örneğini oluşturur ve default değerlere sıfırlanır.BU konuyu Initialization kavramında detaylı olarak bakıcaz.

Özelliklere Erişim Ve Değer Atama

  • Özellikle başlatıcı ile default olarak değerlerden başlatmıştık.
  • Şimdi ise ekrana bastığımızda myekrançözünürlüğü.genislik ile değeri return edebildim.Yani özelliklerimin değerine erişmiş oldum.
  • Aşağıda farklı bir şekilde genişlik değerine eriştim.
  • Sebebi ise Myvideo isimli başlatıcımız videomode isimli Class kardeşimizin özelliklerini taşır .Videomode isimli kardeşimiz ise erkançözünürlüğü isimli yapımızdan miras alabilir.Bu yüzden bu şekilde erişebildim.

Değişken özelliğine aşağıda ki gibi değer atayabilirsiniz.

Yapı türleri için initializer (Başlatıcılar)

Yaplarda örneklerin üye özelliklerinin başlatmak için otomatik olarak oluşturan bir başlatıcı bulunur.Bunu Java’da constructor üzerinde veri gönderme gibi düşünün.Biz burada daha önceden tanımladığımızda değişkenlere değer atamış olduk.

Bir sonra ki bölümde ayrıntılı olarak görücez.Takipte kalın.

Leave a Reply

*