Record Örüntüleri
Record'ları örüntüler içinde ayrıştırın
Record Örüntüleri, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 2. 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 4 dersten oluşur.
Kayıt Kalıpları
Kayıt kalıbı, bir kaydı eşleştirir ve onu bileşenlerine ayırarak bileşenlerini tek adımda değişkenlere bağlar. Artık her erişimciyi elle çağırmanız gerekmez.
Bileşenlerine Ayrılacak Bir Kayıt
Basit bir kayıtla başlayın. Bileşenleri, bir kalıbın çıkarabileceği değerlerdir.
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Point p = new Point(3, 4);
System.out.println(p.x() + ", " + p.y());
}
}instanceof ile Bileşenlerine Ayırma
instanceof Point p yazıp ardından p.x() çağırmak yerine, instanceof Point(int x, int y) yazarak x ve y değişkenlerini doğrudan bağlayabilirsiniz.
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Object obj = new Point(3, 4);
if (obj instanceof Point(int x, int y)) {
System.out.println("Sum: " + (x + y));
}
}
}Bileşenler Yerel Değişkenlere Dönüşür
Kalıbın içindeki adlar (x, y), kaydın bileşen değerlerini tutan yeni yerel değişkenlerdir. Adları siz seçersiniz; kayıtla aynı olmaları gerekmez.
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Object obj = new Point(10, 20);
if (obj instanceof Point(int a, int b)) {
System.out.println("a=" + a + " b=" + b);
}
}
}Kalıplarda var Kullanımı
Bir bileşenin türünü derleyicinin çıkarmasını sağlamak için var yazabilirsiniz. Türler uzun olduğunda bu kullanım oldukça pratiktir.
public class Main {
record Pair(String key, Integer value) {}
public static void main(String[] args) {
Object obj = new Pair("age", 30);
if (obj instanceof Pair(var key, var value)) {
System.out.println(key + " = " + value);
}
}
}Seçim Deyimindeki Kalıplar
Kayıt kalıpları seçim deyiminde de çalışır ve dalların veri şekilleri gibi okunmasını sağlar.
public class Main {
record Point(int x, int y) {}
static String classify(Object obj) {
return switch (obj) {
case Point(int x, int y) when x == y -> "on diagonal";
case Point(int x, int y) -> "at " + x + "," + y;
default -> "not a point";
};
}
public static void main(String[] args) {
System.out.println(classify(new Point(5, 5)));
System.out.println(classify(new Point(1, 2)));
}
}Tür Çıkarımıyla Eşleme
Kalıptaki bileşen türleri, kaydın bildirilmiş türleriyle uyumlu olmalıdır. Tam türü veya var kullanmak güvenli seçimdir.
Koruma Koşullarını Birleştirme
Kayıt kalıbından sonra bir when koruma koşulu ekleyerek yalnızca bileşenlerine ayrılmış değerler bir koşulu sağladığında eşleşme yapabilirsiniz.
public class Main {
record Temperature(double celsius) {}
static String alert(Object o) {
if (o instanceof Temperature(double c) && c > 38.0) {
return "fever: " + c;
}
return "normal";
}
public static void main(String[] args) {
System.out.println(alert(new Temperature(39.5)));
System.out.println(alert(new Temperature(36.6)));
}
}Daha Temiz Veri Erişimi
Kayıt kalıpları, yalnızca birkaç alana ihtiyaç duyduğunuzda özellikle kullanışlıdır. Bir erişimci çağrıları zincirini ortadan kaldırır ve ilgili verileri eşleşmenin yapıldığı yerde açıkça gösterir.
Boş Değerler ve Kayıt Kalıpları
Tüm instanceof kalıpları gibi, bir kayıt kalıbı da boş değer için yanlıştır. Bileşenlerine ayırma işlemi yalnızca değerin kaydın boş olmayan bir örneği olduğu doğrulandıktan sonra gerçekleşir.
Uygulamalı Bir Örnek
Bileşenlerine ayırarak doğrudan bileşenlerden bir değer hesaplayın.
public class Main {
record Rectangle(int width, int height) {}
static int area(Object o) {
if (o instanceof Rectangle(int w, int h)) {
return w * h;
}
return 0;
}
public static void main(String[] args) {
System.out.println(area(new Rectangle(4, 5)));
System.out.println(area("not a rect"));
}
}Kısa Sınama
Kayıt kalıplarını anlayıp anlamadığınızı sınayın.
Özet
Kayıt kalıplarını öğrendiniz.
- Bir kayıt türünü denetler ve bileşenlerini aynı anda bileşenlerine ayırır.
- Bileşen adları, sizin seçtiğiniz yeni yerel değişkenlerdir; türleri
varçıkarır. - Hem
instanceofhem deswitchiçinde çalışırlar. - Tüm kalıplar gibi boş değer için yanlıştırlar.
Sıkça Sorulan Sorular
“Record Örüntüleri” dersi ücretsiz mi?
Evet — “Record Örüntüleri” 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 4 dersten oluşur.
“Record Örüntüleri” dersinde ne öğreneceğim?
Record'ları örüntüler içinde ayrıştırın 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, 4 dersinin 2. dersidir.
“Record Örüntüleri” 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.