Kotlin’de Class Yapısı -(1)

Musa soydas
4 min readJul 9, 2023

--

Evett! Öncelikle herkese merhabalar. Bugün, Kotlin programlama dilinde class’lar nedir, nasıl kullanılır ve kullanırken nelere dikkat etmemiz gerektiğini paylaşacağım. Şimdiden söyleyeyim biraz derinlere inmeye çalışacağız haberiniz olsun. Oldukça heyecanlıyım, öyleyse hazır olduğunuzu düşünerek başlayalım, değil mi?

Class nedir?

Bir class, benzer özelliklere ve davranışlara sahip nesnelerin bir şablonunu tanımlamaya yardımcı olur. Başka türlü söylemle de classlar belirli bir iş grubuna ait ortak özelliklerin toplandığı yerdir. Mesela bunu hayatımıza örnekleyecek olursak günlük yaşantımızda ki var olan nesneler dememiz mümkün olabilir. Örnek verecek olursak bilgisayar, mause, masa, defter, notebook. Mesela buradan bir örnek seçelim -> NOTEBOOK

Bu notebook nesnesini programlama diline çevirmek istediğimizde class annotation kullanarak yapabilmemiz mümkündür. Peki bunu nasıl tanımlayabiliriz?

Burada gördüğünüz gibi notebook nesnemizi oluşturmuş olduk.

Not 1 : Class isimlendirmesinde büyük harf ile yapmanızda fayda vardır. Zorunluluk değildir ancak kodlama kurallarına göre yazmanızda fayda var.

Not 2: Class’lar parametre alabilmektedir. Normal parametre alabildikleri gibi default değerlerde alabilmektedirler.

Kotlin’de, bir sınıfın yapıcı metodlarına “constructor” denir. Bir sınıf, birincil (primary) ve ikincil (secondary) constructorları içerebilir.

Primary Constructor

Primary constructor, bir sınıfın başlatılması sırasında kullanılan ana constructor’dır. Kotlin’de, bir sınıfın başlangıç durumunu belirlemek için primary constructor kullanılır. Primary constructor, sınıf başlığı ile doğrudan birleştirilir. Peki bu constructor türü kodlamada nasıl kullanılıyor. Hadi bakalımm!

işte buradaki modeli primary constructor olarak geçiyor. Diğer bir kullanımı aşağıda ki gibidir ancak pek fazla kullanılmaz.

daha çok visibility modifier yapılması gerektiği durumlarda aşağıdaki gibi açıkça yazılması gerekmektedir.

Name Argument şeklinde de nesne üretebiliriz.Aşağıda örneği mevcuttur.

Eğer primary constructor verdiysek ve class bizden özellik istiyorsa classdan nesne tanımladığımızda bizden bu özellikleri kesin girmemizi isteyecektir. Peki bu nesne tanımlaması nasıl oluyor.

Not : Eğer Constructerda değerler var ise ve bunları val veya var ile tanımlama yapmazsan init blokları haricinde ulaşamazsın. Ancak yeni bir değişken tanımlayıp değişkenin değerini constructerdeki değeri eşitleyerek kullanbilirsin.

görüldüğü gibi iki değer verdik human classına. Biri val ile birini hiç bişi yazmadan tanımladık. init bloklarında ikisinide tanıdı ancak init blokları dışında surname değişkenini tanımlayamadı: )

INIT BLOĞU

Kotlin’de, sınıf(class) başlatılması sırasında özel işlemler yapmak veya nesne özelliklerini başlatmak için “init” bloğunu kullanabilirsiniz.Init bloğu, nesne başlatma işlemleri için kullanışlıdır ve özellikle nesne özelliklerine varsayılan değerler atanması veya işlemlerin gerçekleştirilmesi gibi durumlarda kullanılır.

Yukarıdaki örnekte, “Notebook” adında bir sınıf tanımlanmıştır. Sınıfın özellikleri color ve year olarak belirlenmiştir. Bu özellikler init bloğunda başlatılmıştır. Init bloğunda color özelliğine "Silver" ve year özelliğine 2022 değeri atanmıştır. Ayrıca, init bloğu içinde bir mesaj da ekrana yazdırılmıştır.

Hadi şimdi init bloğu nasıl çalışır ve oluşturulur bakalım.

Farkettiyseniz normal kullanımdan bir farkı olmadı. Aslında siz classın bir nesnesi oluşturduğunuzda otomatik olarak çalışmaktadır.Yukarıdaki kodda, “Notebook” sınıfından bir “myNotebook” nesnesi oluşturulur. Nesne oluşturulduğunda, init bloğu çalışır ve başlatma mesajı ekrana yazdırılmaktadır.

Birden Fazla Init Bloğu

Kotlin ,bir sınıfta birden fazla init bloğu da tanımlayabilme imkanı sunabilmektedir. Birden fazla init bloğu, sınıfın başlatılması sırasında farklı işlemleri gerçekleştirmek için kullanılabilir. İşte birden fazla init bloğu içeren bir örnek daha:

peki bu kodun çağrılması nasıl olacak.Aslında hiçbir fark yoktur. Tek init bloğu gibi çağrılıyor.

Bu kodu çalıştırdığınızda, karşınıza hangi çıktının çıkacağını düşünmenizi isterim? Tahminleri yaptıysanız çıktı nasıl olur hadi bakalım.

Yukarıdan aşağıya init blokları çalışmaya başlar . Year printi verene init bloğu yukarıda olsaydı ilk önce init bloğu çalışacaktır.Anlaşıldığı üzere init blokları yukarıdan aşağıya doğru çalışmaktadır.

Kotlin classlarıyla ilgili ilk dersimizi sonuna geldik . Umarım bu kaynak sizler için faydalı olur ve yolculuğunuzda size rehberlik eder.

İyi çalışmalar dilerimm…

Yazımı okuduğunuz için teşekkür ederim! Bir sonra ki yazılarımda görüşmek üzeree ! Kendinize çok iyi bakınnn.

Son güncellenme tarihi : 03/08/2023

--

--