Bu dersimizde kotlin projelerimizin olmassa olmazı, temel taşı olan fonksiyonlardan bahsedeceğiz. Ayrıca bir java sınıfındam kotlin fonksiyonlarını nasıl kullanacağımızdan ve de overloading işleminin ne olduğuna dair de fikir edineceğiz.
Kotlindeki fonksyion yapısı javadaki method yapısı gibidir. Javadaki void geri dönüş tipinin Kotlindeki karşılığı Unity’dir ve bu tipi bildirmek zorunlu değildir.
Fonksiyonlar belli bir işi gerçekleştiren, gerekirse parametre alan ve geriye bir değer döndüren kod yapılarıdır. Uygulama geliştirirken problemi parçalara ayırıp, ber bir parçayı fonksiyonlarla gerçekleştirmek önemlidir.
Bir fonksiyonun override edilmesi türkçede aşırı yüklenme olarak kullanılır. Aynı isimli birden fazla metodun olmasıyla oluşur. Overload metodların ortak özellikleri isimleridir, aralarında farklılıklarsa parametrelerinden kaynaklanır. Overload metodların dönüş tipleri aynı olmak zorundadır. Dönüş tipleri aynı olmayan metodlarda hata çıkar.
Kotlinde bir methodun override işlemi için methodun üst satırına @JvmOverloads annotation’u eklenir. Böylece çalışma anında farklı parametreler alan aynı isimli methodlar oluşur.
Kotlinde sınıf oluşturmak zorunda olmasak da çalışma anında dosya adını referans alınarak bir class yaratılır. İstediğimiz isimde bir class oluşturulması için kotlin dosyasının başına @file:JvmName(“KotlinDosyasi”) yazılmalıdır.
Bu derste yazılan kodlar aşağıdaki gibidir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
fun main(args : Array<String>){ var toplam = sayilariTopla(10, 15) println(toplam) var maksimum = maksimumSayi(15,19) println(maksimum) var toplamTutar=toplamTutarHesapla(kdvOrani = 85.0, tutar = 50) println(toplamTutar) } /*fun sayilariTopla(sayi1 : Int, sayi2 : Int) : Int { return sayi1 + sayi2 }*/ fun sayilariTopla(sayi1:Int, sayi2:Int) : Int = sayi1 + sayi2 fun maksimumSayi(sayi1 : Int , sayi2:Int):Int = if(sayi1>sayi2) sayi1 else sayi2 @JvmOverloads fun toplamTutarHesapla(tutar:Int , kdvOrani:Double=18.0):Int { return (tutar + tutar*kdvOrani/100).toInt() } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args){ int max=KotlinDosyasi.maksimumSayi(15,12); System.out.println("Javadayız "+max); int toplamTutar=KotlinDosyasi.toplamTutarHesapla(55); System.out.println("javadayız "+toplamTutar); } } |