Kotlin, bildiğimiz üzere bir Object Oriented Programming (OOP), Türkçe karşılığı ile Nesneye Yönelik Programlama türünde bir dildir.  Peki, nedir bu nesneye yönelik programlama?

Nesneye yönelik programlama, işlevlerin nesneler olarak soyutlandığı bir programlama modelidir. Örneğin, bir şirketimiz olsun. Nesne tabanlı programlamaya göre şirketimiz, uygulamamızda oluşturulan sınıflara karşılık gelir. Sınıf içindeki özellikler, tanımlamalar şirketimizin çalışanlarını oluşturur. Bu çalışanlarda nesnelerdir.  Şimdi, nesne tabanlı programlamanın genel olarak neleri kapsadığından, hangi özelliklere sahip olduğundan bahsedelim;

• Inheritance (Miras alma)
• Abstraction (Soyutlama)
• Encapsulation (Kapsülleme)
• Polymorphism (Çok biçimlilik)

Yukarıda bahsettiğim bu özellikler için bu konuda geniş yer vermeyeceğim, hepsini ayrı ayrı konular olarak ele alacağım. Tabii bunların devamı olan “Dependency Injection”, “Dependency Inversion” kavramlarımız da var ancak bunlar çok daha ileri seviye işlemlerdir. Şimdi gelelim object (obje) ve class (sınıf) kavramlarına.

Örneğin, arabaları ele alalım ve birden fazla araba markasını düşünelim. Araba markalarımız; Mercedes, Audi, Toyota, Hyundai olabilir. İşte burada;

Araba  \color{white}{\to}   sınıf,
Mercedes, Audi, Toyota, Hyundai  \color{white}{\to}  nesne

kavramlarını nitelendirmektedir. Şimdi de Kotlin programlama dilinde bunu nasıl kullandığımızı gösterelim.

 

class Araba() // Sınıfımız
{
    
   fun Mercedes()
    {
        println("Bu araç Mercedes")
    }
   fun Audi()
    {
        println("Bu araç Audi")
    }
    
   fun Toyota()
    {
        println("Bu araç Toyota")
    }
    
   fun Hyundai()
    {
        println("Bu araç Hyundai")
    }
}


fun main(args: Array<String>)
{
   var arabalar : Araba = Araba() // Nesneler
   arabalar.Hyundai() // Sınıfımız içindeki nesneyi çağırıyoruz
}


Sınıf ve nesnelerimiz bu kadar. Oldukça kolay kavramlar. Ancak, bundan sonraki kavramlar özellikle abstraction ve polymorphism kavramlarının oldukça iyi bilinmesi gerek.