Class

Sınıf yapısını öğrenerek, Inheritance kavramına giriş yapacak, Struct ve Class arasındaki farkları, kullanım alanlarını keşfederek kavrayacaksınız.

Mentorluk

Randevu OluşturKredi Al

Class Nedir?

Sınıflar, program kodunuzun yapı taşları haline gelen genel amaçlı, esnek yapılardır. Sabitleri, değişkenleri ve metotları tanımlamak için kullandığınız söz dizimini kullanarak yapılarınıza ve sınıflarınıza işlevsellik eklemek için özellikler ve metotlar tanımlarsınız. (Objeler, metotlar ve özellikler ile alakalı yazımıza buradan ulaşabilirsiniz.)

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 dilinde, 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.

Swift dilinde bir sınıf oluşturmak için kullanabileceğiniz yapılardan birisi de class yapısıdır. Bir class yapısının genel biçimi bu şekildedir:


    class Example {

    }

Metotları, sabitleri veya değişkenleri class yapısının içinde tanımlarız.

Özellik Oluşturmak

Örnek olarak, insanlar olarak bizim de içinde bulunduğumuz “Maymun” sınıfını düşünelim. Bu sınıfın içerisinde şempanzeler, goriller ve orangutanlar gibi maymunlar vardır. Tabii ki bu türlerin bu sınıfta olmasının sebebi, hepsinin belli başlı ortak özelliklere sahip olmalarıdır. İşte bu ortak özellikleri oluşturacağımız class yapısının içine yazabiliriz.


    class Maymun {
        let alem = "Hayvan"
        let sinif = "Memeli"
        let takim = "Primat"
    }

“Maymun” sınıfında bulunan bütün canlılar, aynı zamanda birer hayvan, memeli ve bir primattırlar. O yüzden, bu değerleri bir sabit olarak tanımlayabiliriz, çünkü bu değerler hepsinde ortak ve değişmezdir. Tabii ki sadece ortak özelliklerini değil, farklılık gösteren özellikler de oluşturabiliriz. Örneğin; kilo, ömür, kromozom sayısı vs.


    class Maymun {
        let alem = "Hayvan"
        let sinif = "Memeli"
        let takim = "Primat"
        
        var bilimselAd: String
        var ortalamaKutle: Int
        var yasamSuresi: Int
        var kromozomSayisi: Int
    }

Gördüğünüz üzere, az önce eklediğimiz objeler aslında bir değere sahip değiller. Bunun sebebi, bu değerlerin, ileride bu “Ape” sınıfı ile bir obje oluşturduğumuz zaman verilecek olmasıdır. Ayrıca, class yapısında bunun olabilmesi için, bu değerleri init metodunda kullanmamız gerekiyor.


    init(bilimselAd: String, ortalamaKutle: Int, yasamSuresi: Int,
    kromozomSayisi: Int) {
        self.bilimselAd = bilimselAd
        self.ortalamaKutle = ortalamaKutle
        self.yasamSuresi = yasamSuresi
        self.kromozomSayisi = kromozomSayisi
    }

Artık oluşturduğumuz sınıf ile bir obje oluşturabiliriz.

Obje Oluşturmak

İlk objemizi oluşturmaya şempanzeden başlayabiliriz.


     let sempanze = Maymun(bilimselAd: "Pan troglodytes", ortalamaKutle: 45, 
     yasamSuresi: 35, kromozomSayisi: 48)

Gördüğünüz üzere, sınıfımızla yeni bir obje oluştururken tanımladığımız özellikler, ilk başta değer vermediğimiz özelliklerdir. Şimdi başka objeler de oluşturabiliriz.


    let goril = Maymun(bilimselAd: "Gorilla", ortalamaKutle: 155, 
    yasamSuresi: 37, kromozomSayisi: 48)
    let orangutan = Maymun(bilimselAd: "Pongo", ortalamaKutle: 60, 
    yasamSuresi: 40, kromozomSayisi: 48)

Özelliğe Ulaşmak

Bu oluşturduğumuz objelerin içerisindeki özelliklere teker teker ulaşabiliriz. Bunun için class yapısının değişkenlere ulaşma özelliğini kullanabiliriz.


    sempanze.yasamSuresi

Hatta eğer özelliğinizi var tanımlayıcısı ile tanımladıysanız, özelliğinizin değerini bile değiştirebilirsiniz.


    sempanze.yasamSuresi = 100

Metot Oluşturmak

Bir class yapısında özellikleri nasıl kullanabileceğimizi öğrendiğimize göre, artık yapımızda nasıl metot tanımlayabileceğimizi öğrenebiliriz. Örneğin oluşturduğumuz objenin özelliklerini yazdıran bir metot tanımlayabiliriz.


    func bilgiVer() {
        print("\(bilimselAd) türü, ortalama \(ortalamaKutle) kilodur. 
        Ortalama ömrü \(yasamSuresi) yıldır. \(kromozomSayisi) tane 
        kromozoma sahiptir.")
    }

Bu metodu kullanmak için yapmamız gereken, bir objenin özelliğine ulaşmak için yapmamız gereken ile neredeyse aynı.


    sempanze.bilgiVer()

Bu kodu çalıştırdığınızda, objenizin içerisinde tanımlanmış özellikler yazdırılacaktır.

Sıradaki

Koleksiyonlar

Çoklu nesneleri bir arada tutan “array” ve “dictionary” kavramlarını ve nesneler ekleyip çıkararak koleksiyon yaratmayı öğreneceksiniz.

Videolar

Swift Temellerine Giriş
Swift Temellerine Giriş
Teknolojinin Dili Kodlama
Teknolojinin Dili Kodlama
Playground Temelleri
Playground Temelleri
Veri Tipleri & Sabitler ve Değişkenler
Veri Tipleri & Sabitler ve Değişkenler
Operatörler
Operatörler
Kontrol Akışı
Kontrol Akışı
Fonksiyonlar
Fonksiyonlar
String'ler
String'ler
Objeler, Metotlar ve Özellikler
Objeler, Metotlar ve Özellikler
Xcode ile Tanışın
Xcode ile Tanışın
Struct
Struct
Class
Class
Koleksiyonlar
Koleksiyonlar
Döngüler
Döngüler
Xcode
Xcode
“Build”, “Run” ve “Debug”
“Build”, “Run” ve “Debug”
Arayüz Elemanlarını Yakından Tanıyın
Arayüz Elemanlarını Yakından Tanıyın
Dokümantasyon
Dokümantasyon
“Interface Builder” Temelleri
“Interface Builder” Temelleri
"UIKit" ile Kullanıcı Arayüzüne Giriş
"UIKit" ile Kullanıcı Arayüzüne Giriş
İlk Uygulama
İlk Uygulama
Kontrol Elemanları
Kontrol Elemanları
Autolayout & Stackview
Autolayout & Stackview
Optionals
Optionals
Tip Dönüşümleri
Tip Dönüşümleri
Guard
Guard
Uygulama Hayat Döngüsü ve Veri Modelleme
Uygulama Hayat Döngüsü ve Veri Modelleme
Scope Sabit & Değişken
Scope Sabit & Değişken
Enumerations
Enumerations
Protokoller
Protokoller
Segue ve Navigation Controller
Segue ve Navigation Controller
TabbarController
TabbarController
View Controller Hayat Döngüsü
View Controller Hayat Döngüsü
Basit Akışlar Oluşturmak
Basit Akışlar Oluşturmak
Uygulama Anatomisi ve Hayat Döngüsü
Uygulama Anatomisi ve Hayat Döngüsü
Model View Controller
Model View Controller
Uygulamanızda Veri Kaydedin
Uygulamanızda Veri Kaydedin
ScrollView
ScrollView
TableView Giriş
TableView Giriş
TableView İleri
TableView İleri
Verileri Kaydetmek
Verileri Kaydetmek
System View Controllers
System View Controllers
Uygulama Geliştirin
Uygulama Geliştirin
Karmaşık Veri Girişi Ekranları Oluşturmak
Karmaşık Veri Girişi Ekranları Oluşturmak
Closures
Closures
Extensions
Extensions
Pratik Animasyonlar
Pratik Animasyonlar
İnternet ile İletişime Geçin
İnternet ile İletişime Geçin
İnternet ile Çalışmak
İnternet ile Çalışmak
JSON
JSON
Concurrency
Concurrency