Fonksiyon Nedir?
Meta'da yazılım mühendisi olarak çalıştığınızı varsayalım. Ekibiniz, en iyi keşfet sayfası öneri video algoritmalarını oluşturmak için bir algoritma üzerinde çalışıyor. Kullanıcının hangi gönderileri beğendiğini takip etme fikrini ortaya atıyorsunuz, takım arkadaşınız kullanıcının arkadaşlarının neyi beğendiğini görmeniz gerektiğini söylüyor ve diğer takım arkadaşlarınız başka fikirler öneriyor. Daha sonra PM (proje yöneticisi) görevleri tüm ekibinize böler. Kullanıcının beğendiği gönderileri takip edecek ve benzer videoları bulacak algoritmayı yazacaksınız. Tüm takım arkadaşlarınız kendi özel görevleri için benzer algoritmalar yazacaktır.
Farklı algoritmaları nasıl birbirine bağlarsınız?
Tüm ekibin algoritmalarını belirli yöntemler veya işlevler olarak yazması gerekir. Kod işlevlerinin "parametrelerini" nerede toplayacaklarını, yöntemlerinin nerede "değiştirilebileceğini", algoritmalarının neyi "döndüreceğini" ve işlevinizin "adının" ne olduğunu belirtin.
Fonksiyon Tanımlama
Bir fonksiyon yazarken fonksiyonunuzun kullanım durumunun ne olduğunu düşünmelisiniz. İşlevinizin "toplam" işlevi gibi herkese açık bir işlev olmasını ister misiniz? Yoksa işlevinizin şifre otomasyon işlevi gibi özel olmasını mı istiyorsunuz?
Bir fonksiyonun bu kısmına değiştirici denir. Değiştirici "public" veya "private" olabilir ve "static" ekleyebilirsiniz.
Bir OOP koduyla çalışmıyorsanız muhtemelen static kullanmazsınız, ancak static, kodunuzun çıktısını yalnızca bir örnek olmaktan ziyade yeni bir aitliğe dönüştürecektir.
Daha sonra kodunuzun ne döndüreceğini tanımlamanız gerekir. Kodunuz bir String, bir tamsayı veya başka türde bir veri döndürecek mi, yoksa hiçbir şey döndürmeyecek mi? Bunun için şu tabloyu kullanabilirsiniz:
İşlevinize bir ad vermeniz yardımcı olacaktır. İşleviniz ne yapacak? İşlevinizi "çağırmak" istediğinizde bu adı yazmanız gerekeceğini unutmayın. Bu yüzden takım arkadaşlarınızın anlayabileceği ama aynı zamanda uzun olmayan bir isim verin. Büyük harf veya rakam kullanmamanızı tavsiye ederim.
Nihayet!!! Parametrelerimiz var. Algoritmanız için bilmeniz gerekenler nelerdir?
Örneğin Meta algoritmamızı oluşturmaya devam edelim. Öneri algoritması için kullanıcının verilerini almanız gerekir. Parametreniz birkaç Instagram kullanıcısını temsil eden bir int, oluşturduğunuz ve Kullanıcı olarak adlandırdığınız genel bir nesne veya başka herhangi bir veri türü olabilir.
Kıvrımlı parantezleri açın ve işlevinizi başlattınız! Algoritmanızın ne yapacağını “parametre değer adlarını kullanarak” yazmalı ve algoritmanızın döndürmesi gereken değeri döndürmelisiniz.
Örnek 1
Burada öneri adı verilen bir fonksiyonumuz var. “key” (anahtar) olarak tanımlanan bir karakter, “answers” (cevaplar) olarak tanımlanan bir karakter dizisi ve “length” (uzunluk) olarak adlandırılan bir tam sayıyı bir araya getirir. Bu fonksiyonun bir tamsayı döndüreceğini biliyoruz. Şimdi koda bakarsak, anahtarla eşleşen kaç cevabın sayıldığını ve authenticated (kimliği doğrulanmış) cevapların cevabını döndürdüğünü görebiliriz. Diyelim ki bir öğretmensiniz ve öğrencilerinize bir soru sordunuz. Kaç öğrencinin doğru cevabı aldığını belirlemek için bu işlevi tüm sorular için kullanabilirsiniz. Neden denemiyorsun?
Şimdi bu kodun neyi kodladığını ve true_answers fonksiyonunun nasıl çalıştığını ve çağrıldığını açıklamaya çalışın!
Daha kolay soruları deneyin!
public static int sum(int a, int b){
return a+b;
}
public static String tam_ad(String first_name, String last_name){
return first_name + " " + last_name;
}
public void hi(){
System.out.println("Merhaba");
}
public static void pyramid(int num){
if(num%2!=1){
num++;
}
for(int i = 0; i<num; i+=2){
for(int j = 0; j<(num-i)/2; j++){
System.out.print(" ");
}
System.out.println("");
for(int j = 0; j<(i+1);j++){
System.out.print("*");
}
for(int j = 0; j<(num-i)/2; j++){
System.out.print(" ");
}
System.out.println("");
}