Swift ile değişkenler, veri tipleri, döngüler derken geldik temel bilgilerin en sonuncusuna, yani sınıf (class) kavramına.
Daha önce de bahsettiğim üzere Swift ile header kavramı ortadan kalkıyor ve Java gibi sınıflar tek dökümanda toplanıyor. Yeni bir swift dosyası oluşturduğunuzda Xcode eskisinin aksine .h ve .m dosyaları yerine sadece bir .swift dosyası oluşturuyor ve istenirse her sınıf bu şekilde tanımlanabiliyor.
class Sekil { var kenarsayisi = 0 func toString() -> String { return "\(kenarsayisi) köşeli bir şekil" } }
Yarattığımız sınıfı kullanmak istersek alışık olduğumuz Objective-C yöntemleri olan alloc ve init yerine Java/C karışımı bir şekilde obje yaratabiliyoruz
var yedigen = Sekil() yedigen.kenarsayisi = 7 yedigen.toString()
Fakat bu çok genel bir sınıf olduğu için bunu özelleştirmemiz gerekebilir. Biz de örneğimize hem isim değişkenini ekleyelim hem de kare ile genişletelim ekleyelim
class Sekil { var kenarsayisi: Int = 0 var isim: String init(isim: String) { self.isim = isim } func toString() -> String { return "\(kenarsayisi) köşeli \(isim) isimli bir şekil" } }
class Kare: Sekil { var kenarUzunlugu: Double init (kenar: Double, isim: String) { self.kenarUzunlugu = kenar super.init(isim) kenarsayisi = 4 //Sekil sınıfındaki bilgilere ulaşım } func alan() -> Double { return kenarUzunlugu * kenarUzunlugu } //Bu fonksiyon eskisinin üzerinde çalışacağı için override olduğunu bildirmemiz lazım override func toString() -> String { return "Kenar uzunluğu \(kenarUzunluğu) olan bir kare" } }
Kare nesnesini de benzer bir şekilde kullanacağız, ancak yaratırken doğru bilgileri girmemiz bu sefer şart
let kare = Kare(kenar: 3.7, isim: "İlk Karem") kare.alan() kare.toString()
Böylece temel kavramları bitirdik. Bir sonraki dizide neler olacak henüz karar vermedim, ama Swift’e bir süre ara vermiş oluyoruz bu yazıyla 🙂