0Pricing
Java Academy · Ders

Java'da Değerle Aktarım

Java'da değerle aktarımı öğrenin: ilkel türler ve başvurular, yeniden atama ve değişiklik, diziler ve değişmezlik kaynaklı hatalar.

Java'da Değerle Aktarım, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 3 dersten oluşur.

Değerle geçirmeye genel bakış

Amaç: Java'nın parametreleri nasıl aktardığını öğrenmek. İlkel türlerle başvuruları, yeniden atamayla değiştirmeyi, dizileri ve değişmezliği karşılaştırın.

İlkel türlerin kopyalanması

İlkel türler değerle geçirilir: çağrılan yöntem bir kopya alır. Parametreye yeniden değer atamak, çağıranın değişkenini değiştirmez.

public class Main {
  static void inc(int x) {
    x = x + 1; // modifies the local copy only
  }
  public static void main(String[] args) {
    int a = 5;
    inc(a);
    System.out.println("a after inc(a) = " + a); // still 5
  }
}

Başvurular: değiştirme ve yeniden atama

Nesnelerde başvuru kopyalanır. Bu başvuru üzerinden nesneyi değiştirmek çağıranın nesnesini etkiler; parametreye yeniden değer atamak etkilemez.

public class Main {
  static class Box { int n; }
  static void setTo999(Box b) { b.n = 999; } // mutate via copied reference
  static void reassign(Box b) { b = new Box(); b.n = 123; } // reassign local copy only
  public static void main(String[] args) {
    Box bx = new Box();
    bx.n = 10;
    setTo999(bx);
    System.out.println("after setTo999: bx.n = " + bx.n); // 999
    reassign(bx);
    System.out.println("after reassign: bx.n = " + bx.n); // still 999
  }
}

Diziler: değiştirme ve yeniden atama

Diziler nesnedir. Çağıranı etkilemek için diziyi değiştirin; parametreye yeniden değer atamak çağıranın dizisini değiştirmez.

public class Main {
  static void fillZero(int[] a) {
    for (int i = 0; i < a.length; i = i + 1) a[i] = 0; // mutate caller array
  }
  static void replace(int[] a) {
    a = new int[] {9, 9, 9}; // reassign local copy of the reference
  }
  public static void main(String[] args) {
    int[] arr = {1, 2, 3};
    fillZero(arr);
    System.out.println("after fillZero: " + arr[0] + "," + arr[1] + "," + arr[2]); // 0,0,0
    replace(arr);
    System.out.println("after replace:  " + arr[0] + "," + arr[1] + "," + arr[2]); // still 0,0,0
  }
}

Değişmez ve değişebilir

String değişmezdir (yeni nesneler döndürür); StringBuilder değişebilirdir (aynı örneği değiştirir).

public class Main {
  static void tryChangeString(String s) {
    s = s + "!"; // new String; original unchanged
  }
  static void changeBuilder(StringBuilder sb) {
    sb.append("!"); // mutates same object
  }
  public static void main(String[] args) {
    String s = "hi";
    tryChangeString(s);
    System.out.println("after tryChangeString: " + s); // "hi"

    StringBuilder sb = new StringBuilder("hi");
    changeBuilder(sb);
    System.out.println("after changeBuilder:  " + sb.toString()); // "hi!"
  }
}

Doğru yer değiştirme

Parametreler kopya olduğundan, bir yöntem içinde ilkel türlerin yerini değiştirmek çağıranı etkilemez. Yeni değerler döndürün (veya taşıyıcı bir nesne kullanın).

public class Main {
  static void trySwap(int a, int b) {
    int t = a; a = b; b = t; // swaps local copies only
  }
  static int[] swap(int a, int b) {
    return new int[] { b, a }; // return results to the caller
  }
  public static void main(String[] args) {
    int x = 1, y = 2;
    trySwap(x, y);
    System.out.println("after trySwap: x=" + x + ", y=" + y); // 1,2
    int[] res = swap(x, y);
    x = res[0]; y = res[1];
    System.out.println("after swap:    x=" + x + ", y=" + y); // 2,1
  }
}

Değerle geçirme kontrolü

Hızlı kontrol: Java'nın parametre aktarması hakkında hangi ifade doğrudur?

Özet ve sıradaki konu

Özet: İlkel türlerle başvuruları, değiştirmeyle yeniden atamayı, nesne olarak dizileri, değişmezliği ve güvenli bir yer değiştirme biçimini gördünüz. Sırada statik ve örnek yöntemleri var.

Sıkça Sorulan Sorular

“Java'da Değerle Aktarım” dersi ücretsiz mi?

Evet — “Java'da Değerle Aktarım” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 3 dersten oluşur.

“Java'da Değerle Aktarım” dersinde ne öğreneceğim?

Java'da değerle aktarımı öğrenin: ilkel türler ve başvurular, yeniden atama ve değişiklik, diziler ve değişmezlik kaynaklı hatalar. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.

“Java'da Değerle Aktarım” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Java'da Değerle Aktarım
  2. Statik ve Örnek Yöntemleri
  3. Yöntemlere Ayırma ve Temiz Kod
← Java Academy Sayfasına Dön