Cumartesi 28 Ocak 2023
Hakkında
Yazarlarımız
Reklam
Künye
İletişim
Webmaster.Kitchen – Türkiye'nin Webmaster MutfağıWebmaster.Kitchen – Türkiye'nin Webmaster Mutfağı

Bülten

Sosyal Medya Yasası Kabul Edildi

Binance ‘e Siber Saldırı

Webmaster.Kitchen – Türkiye'nin Webmaster MutfağıWebmaster.Kitchen – Türkiye'nin Webmaster Mutfağı
  • BAŞLARKEN
    • KOD
      • PHP
      • Asp.Net
      • Swift
      • MySQL
      • CMS
  • TASARIM
    • İpuçları
    • Çizim
    • Illustrator
    • Photoshop
    • Trendler
  • ARAYÜZ
    • JavaScript
    • HTML5
    • CSS
    • REACT
  • İPUÇLARI
    • API
    • Güvenlik
    • IDE
    • Framework
    • OS
    • Verimlilik
    • İçerik
      • Dökümantasyon
      • İpuçları
      • Nasıl Oluşturulur?
  • KAYNAKLAR
    • Tasarım
    • Kod
    • İş
  • GİRİŞİM
    • Finans
    • Girişimci
    • Nasıl yapılır?
  • ARAÇLAR
  1. Anasayfa
  2. Swift
  3. Swift Struct vs Class ? Nasıl kullanılır ?
 Swift Struct vs Class ? Nasıl kullanılır ?
Swift Yazılım

Swift Struct vs Class ? Nasıl kullanılır ?

Yazar : Kadir Kutluhan Alev 8 Mart 2019 2 Comments

Merhaba arkadaşlar bugün programlamada sık sık kullandığımız 2 yapı olan struct ve class’ lardan bahsedeceğim. İlk önce bunların kısa bir tanımını yaparak başlayalım.

Struct ve class’ lar , programımızın yapıtaşları olan genel amaçlı, esnek yapılardır. Struct ve Class’ımızın fonksiyonelliğini properties ve method ekleyerek artırabilirsiniz.(Properties ve method’ların syntax’ları constant, variables ve fonksiyon ile aynıdır.)

Diğer dillerin aksine Swift’te özel Class ve Structları ayrı interface yada dosyalarda oluşturmamıza gerek yoktur.(Struct veya Class ‘ ı tek sayfada tanımlayabilirsiniz.)

★ Struct Ve Class’ların Özellikleri

Swift’ de struct ve classların ortak birçok özelliği vardır.

● Değer saklamak için properties tanımlanabilmesi,

● Fonksiyonelliği artırmak için method tanımlanabilmesi,

● Başlangıç durumlarını(initial state) belirlemek için initializers kullanılması,

● Fonksiyonelliklerini aktarmak için extend edilebilir olma,

● Bir tür de fonksiyonellik sağlamak için protokollere uyabilmeleri.

Class’lar structların sahip olamadığı ek özelliklere sahiptir.

● Inheritance : Bir sınıfın karakteristiğini başka sınıfa kalıtabilir. (Devredebilir)

● Type Casting : Çalışma zamanında bir sınıf örneğinin türünü kontrol etmenizi ve yorumlasınız sağlar.

● Reference Counting : Sınıf örneğinden birden fazla olmasına izin verir.

NOT : Sınıfların ek özellikleri güzeldir. Fakat her güzelliğin bir bedeli vardır 
buda kodun karmaşıklığının artmasıdır.

Genel olarak structur’ ı tercih etmek daha mantıklıdır. Class’ı uygun ve gerekli olduğu olduğunda kullanmamız gereklidir.

Bunun anlamı aslında tanımladığımız çoğu özel data type’ın struct ve enum olacağı demektir.

 

→ Definition Syntax

Struct ve class tanımlamaları aşağıdaki gibidir.

 

NOT : Yeni struct veya class tanımladığımızda yeni bir Swift type'ı tanımlamış olursunuz. Ve bildiğimiz gibi type tanımlanırken kelimenin baş harfi büyük harf olur.

Aşağıda struct ve class tanımlamayı görelim.

Yukarda adı Cozunurluk olan bir struct tanımladık. Bu struct 2 adet değer tutan değişkene sahip(genislik ve yukseklik). Bu2 özellik başlangıç değeri 0 atandığından TYPE INFERRED ile tiplerinin int olduğu zaten belirlendi. Bir de VideoModu adında bir class tanımladık. Bu class’da 3 tane değişkene sahip. Bir tanesi Cozunurluk sınıfından oluşturulan bir instance . Bir tanesi de isim adında bir property. Bu property optional olduğu için default olarak içine nil atanmıştır. (Optional’lerden sonraki yazılarda bahsedeceğiz.)

→ Property’ lere Erişim

Özelliklere . syntax’ ı ile erişebiliriz.

NOT : Structlar initializer'ı otomatik üretir.

 let vga = Cozunurluk(genislik:640 , yukseklik:480)

 

★ Struct’lar Value Type’ dır

Value type olan bir tür demek , bir değişkene yada sabite atandığında veya fonksiyona parametre olarak geçirildiğinde kopyalanan tür demektir.

Aslında bütün Swift basic type’ları value type’ dır.(integers,floating,booleans,strings,arrays ve dictionary) ve arka planda struct gibi implement edilir.

Yani value type’ da struct’ dan oluşturduğumuz bir instance’ ı kod içinde atama yaptığımızda veya bir fonksiyona parametre olarak geçirdiğimizde kopyalanır.

En sonunda size bunu anlamanızda çok yardımcı olacak bir görsel ekleyerek bitirelim.

★ Class’lar Reference Type’dır

Value type’ların tersine , reference type’lar bir değişkene veya sabite atandığında kopyalanmazlar. Yada bir fonksiyona parametre olarak geçtiklerinde kopyalamak erine mevcut aynı referans kullanılır.

Örneğine bakalım .

örnek de gördüğümüz gibi aslında ornek2 nesnesinin kareHizini değiştirdik fakat ornek nesnesinin de değeri değişti.Bunun sebebi ikisinin de aynı referansı gösteren 2 farklı isim de nesne olmasıdır.Yani birinde bir özelliği değiştirirseniz  hepsinde değişir.

Bunuda daha rahat anlamak için şu görsele bakalım.

 

 

Resimden de görüldüğü gibi iki farklı referans bellekte aynı noktayı kullandığı için birinde yapılan değişiklik diğerini de etkiliyor.

 

Bu yazımızında sonuna gelmiş bulunmaktayız. Data detaylı incelemek isteyenler buradan dokümantasyona ulaşabilir.

Okuduğunuz için teşekkür ederim yorumlarınızla bize destek olabilir veya kişisel hesaplarımdan bana ulaşabilirsiniz. Keyifli kodlamalar 🙂

 

Etiketler: bilgisayar bilgisayar mühendisliği class developer geliştirici ios kod kodlama language mobil mobil programlama mühendis programlama programming language sınıf struct swift
Önceki Yazı
Sonraki Yazı

Kadir Kutluhan Alev (Website)

author

Swift ile iOS App geliştirme üzerine çalışıyorum.Bu araştırmaları yaparken öğrendiğim bilgileri mutfakta sizler ile paylaşıyorum.Sizde araştırmalarınızı bizimle paylaşın . Yorum yaparak mutfağın gelişmesine katkıda bulunun.

2 Yorumlar

  • Zeynep Canıgür says:
    8 Mart 2019 at 18:59

    Çok faydalı bir yazı olmuş teşekkürler kutluhan

    Reply
    • Kadir Kutluhan Alev says:
      8 Mart 2019 at 21:23

      Güzel yorumun için çok teşekkür ederim 🙂

      Reply

Yorum Yap Yorumu İptal Et.

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Taze Yazılar
Güncel

Sosyal Medya Yasası Kabul Edildi

14 Ekim 2022
Blockchain

Binance ‘e Siber Saldırı

8 Ekim 2022
Blockchain

Binance ‘den Ücretsiz Eğitim

5 Ekim 2022
Güncel

Japonya için Yenilenen Corolla

4 Ekim 2022
© 2021 Webmaster Kitchen. Tüm Hakları Saklıdır.