CodeBlanks Logo Icon CodeBlanks

Özet - Metot parametreleri

İlkel, nesne ve varargs'ı birleştirerek bir istatistik fonksiyonu yazarsın.

Özet: Metot parametreleri

Bu grupta parametre geçişinin dört yönünü gördün: ilkel değerle geçiş, nesne referansı, varargs ve final parametreler.

İlkel parametreler kopyalanır; dışarısı etkilenmez. Nesne parametreleri referans kopyası geçirir; içerik değişimi dışarıyı etkiler. varargs ile esnek sayıda argüman alabilirsin. final ise yeniden atamayı engeller.

Şimdi bunları birleştirerek küçük bir istatistik fonksiyonu yazacaksın: varargs ile sayı al, min ve max'ı dizi olarak döndür.

Uygulama İstatistik fonksiyonu

minMax adında static int[] metot tanımla; parametre int... nums. Gövde, tüm elemanları tarayıp en küçüğünü ve en büyüğünü bulsun; new int[]{min, max} döndürsün. main içinden minMax(4, 9, 2, 7) çağırıp sonucu Arrays.toString ile yazdır.

Başlangıç kodu

Main.java
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    // Metodu dört değerle çağır, sonucu yazdır
  }
  // minMax metodunu buraya tanımla (varargs)
}

Örnek çözüm

Main.java
static int[] minMax(int... nums) {
  int min = Integer.MAX_VALUE;
  int max = Integer.MIN_VALUE;
  for (int n : nums) {
    if (n < min) min = n;
    if (n > max) max = n;
  }
  return new int[]{min, max};
}
// main içinde:
System.out.println(Arrays.toString(minMax(4, 9, 2, 7)));

Beklenen çıktı

[2, 9]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Boşluğu doldur: varargs tanımı

Soru
static int[] minMax(int____ nums) {
  int min = Integer.MAX_VALUE;
  int max = Integer.MIN_VALUE;
  for (int n : nums) {
    if (n < min) min = n;
    if (n > max) max = n;
  }
  return new int[]{min, max};
}
Cevap
static int[] minMax(int... nums) {
  int min = Integer.MAX_VALUE;
  int max = Integer.MIN_VALUE;
  for (int n : nums) {
    if (n < min) min = n;
    if (n > max) max = n;
  }
  return new int[]{min, max};
}

Açıklama: int... ile esnek sayıda argüman alınır.

2 Senaryo ve yaklaşım eşleştir

Kavram Anlamı
Esnek sayıda sayı varargs
Dışarıdaki listeyi değiştir nesne parametresi
Yeniden atamayı önle final parametre
İlkel değerin değişmesini önle değerle geçiş

3 int... nums parametreli bir metoda hangi çağrı geçerlidir?

  • sum(1, 2, 3)
  • sum{1, 2, 3}
  • sum([1, 2, 3]) Doğru cevap
  • sum(int 1, 2, 3)

Açıklama: varargs çağrıda virgülle ayrılmış argümanlar verilir.

Başlangıç bölümündeki tüm dersler