iOS – Swift Dersleri (Sınıflar, Objeler, Fonksiyonlar)

Merhaba Arkadaşlar,
Bu paylaşımda Swift’te sınıf (class), obje (object/instance) ve fonksiyon (function) kullanımlarının temel anlamda nasıl olacağını inceleyeceğiz. Bu yazı içeriğinde sınıf ve obje oluşturulması, sınıf değişkenlerinin, fonksiyon oluşturulması ve çağrılması ile ilgili bilgiler bulabilirsiniz.

Class sınıf_adi notasyonu ile sınıf oluşturabiliriz. Sınıfın property‘lerini önceki dersimizde değindiğimiz sabit değişken ve değişken oluşturma şeklinde tanımlayabiliyoruz. Normal tanımdan farklı olarak bu property‘ler sınıfa ait oluyor. Fonksiyon tanımı da basit anlamda aşağıda görüleceği gibi yapılabilir.

class Shape {
    var numberOfSides = 0  //sınıf içi değişken
    
    //fonksiyon
    func simpleDescription() -> String {
        return "A shape with \(numberOfSides) sides."
    }
}

Bir sınıfın objesi var obje = sınıf_adı() şeklinde oluşturulabilir.
obje_adı.property şeklinde bir kullanım ile sınıfın property‘lerine (değişken, sabit değişken, fonksiyon …) ulaşabiliriz.

var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()

Objeleri oluştururken ilgili sınıfa ait birtakım ayarlar yapabilmek için özel metodlara ihtiyaç duyabiliriz.
Obje oluşturulduğunda çalışmasını istediğimiz bu tür kod blokları için init metodunu kullanıyoruz. Init methodu obje oluşturulduğu sırada otomatik olarak çalışır. (Constructor olarak aklımızda kalabilir. Objelerin oluşturuldu anda çalışan method olarak)

class NamedShape {
    var numberOfSides: Int = 0
    var name: String
    
    //NameShape sınıfına ait bir obje oluşturulduğunda init methodu çalışacaktır.
    init(name: String) {
        self.name = name
    }
    
    func simpleDescription() -> String {
        return "A shape with \(numberOfSides) sides."
    }
}

Yukarıdaki örnekte self kelimesi property olan name ile parametre olan name‘i ayırmak için kullanılıyor. self‘in görüldüğü yerde etkilenen değişkenin o sınıfa ait olan değişken olacağı anlamını çıkarabiliriz.

Init‘e benzer bi şekilde, objemiz deallocate edilmeden önce yapmak istediğimiz işlemler varsa, bu tür işlemler için deinit metodunu kullanabiliriz. Deinit metodu obje deallocate edilmeden önce çalışır.

Bir alt sınıfta süper sınıfın bir fonksiyonu override ediliyorsa (alt sınıfta ilgili fonksiyon tekrar yazılıyorsa, alt fonksiyona özel hale getiriliyorsa) fonksiyon tanımının başına override kelimesi getirilir. Override edilen bir fonksiyon tanımında override kelimesi kullanılmazsa derleyici hata verecektir. Aynı şekilde override edilmeyen bir fonksiyon tanımının başına override kelimesi yazılırsa derleyici yine bizi uyaracaktır.

class Square: NamedShape {
    var sideLength: Double
    
    init(sideLength: Double, name: String) {
        self.sideLength = sideLength
        super.init(name: name) //süper sınıfın init metodu calisir
        numberOfSides = 4
    }
    
    func area() ->  Double {
        return sideLength * sideLength
    }
    
    override func simpleDescription() -> String {
        return "A square with sides of length \(sideLength)."
    }
}
let test = Square(sideLength: 5.2, name: "my test square")
test.area()
test.simpleDescription()

Bu paylaşımda Swift’te sınıf, obje ve fonksiyon kullanımlarını, sınıf property’lerini incelemeye çalıştık. Bu konuların temel anlamda nasıl kullanıldıklarını, basit örneklerle inceledik. Mobilhanem‘de Swift ile ilgili paylaşımlara devam edeceğiz.

Kaynak: apple.com

iOS – Swift Dersleri (Kalıtım)

2

Aycan Ayhan

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?