permits Yan Tümcesi
İzin verilen alt türleri listeleyin
permits Yan Tümcesi, 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.
İzinler Yan Tümcesi
permits yan tümcesi, mühürlü türün izin verilen alt türlerini adlandırmasını sağlar. Tür adından ve permits anahtar sözcüğünden hemen sonra gelir.
Temel Söz Dizimi
İzin verilen alt türleri permits sözcüğünden sonra virgüllerle ayırarak listeleyin.
public class Main {
sealed interface Vehicle permits Car, Truck, Motorcycle {}
record Car() implements Vehicle {}
record Truck() implements Vehicle {}
record Motorcycle() implements Vehicle {}
public static void main(String[] args) {
Vehicle v = new Truck();
System.out.println(v.getClass().getSimpleName());
}
}Sözleşmeyi Uygulama
Adlandırılan her alt tür, mühürlü türü gerçekten implements (arayüzler için) veya extends (sınıflar için) etmelidir. permits içinde bunu yapmayan bir sınıfı adlandırmak derleme hatasına yol açar.
İzinleri Atlamak
İzin verilen tüm alt türler mühürlü türle aynı dosya içinde bildirilmişse permits ifadesini tamamen atlayabilirsiniz. Derleyici listeyi otomatik olarak çıkarır.
public class Main {
sealed interface Status {}
record Active() implements Status {}
record Inactive() implements Status {}
public static void main(String[] args) {
Status s = new Active();
System.out.println(s.getClass().getSimpleName());
}
}İzinler Ne Zaman Gerekir
Alt türler aynı paket veya modül içindeki ayrı dosyalarda bulunuyorsa bunları permits içinde açıkça listelemeniz gerekir. Derleyici dosyalar arasında çıkarım yapamaz.
Sıralamanın Önemi Yoktur
permits içindeki adların sırasının anlamsal bir anlamı yoktur. Bu sıra, seçim yapısının davranışını veya başka herhangi bir şeyi etkilemez; yalnızca izin verilen türlerin listesidir.
İzinlerle Bir Sınıf Hiyerarşisi
Aynı yan tümce, soyut davranış içeren mühürlü sınıflar için de çalışır.
public class Main {
sealed static abstract class Node permits Leaf, Branch {
abstract int size();
}
static final class Leaf extends Node {
int size() { return 1; }
}
static final class Branch extends Node {
final Node a, b;
Branch(Node a, Node b) { this.a = a; this.b = b; }
int size() { return a.size() + b.size(); }
}
public static void main(String[] args) {
Node tree = new Branch(new Leaf(), new Branch(new Leaf(), new Leaf()));
System.out.println("Leaves: " + tree.size());
}
}Bir Alt Türü Unutmak
Bir sınıf mühürlü arayüzü uygular ancak permits içinde yer almazsa derleme başarısız olur ve sınıfın mühürlü türü genişletmesine izin verilmediğini belirten bir ileti gösterilir.
İzin Verilen Türler Herkese Açık Bilgidir
permits listesi, türün sözleşmesinin bir parçasıdır ve sınıf dosyasına kaydedilir. Araçlar ile derleyici, alt türlerin tamamını öğrenmek için bu listeyi okuyabilir.
Son ve Mühürlü Alt Türleri Birleştirme
Bir permits listesi değiştiricileri bir arada kullanabilir: bazı alt türler final olabilirken diğerleri hiyerarşiyi daha derine taşımak için sealed olabilir.
public class Main {
sealed interface Shape permits Circle, Polygon {}
record Circle(double r) implements Shape {}
sealed interface Polygon extends Shape permits Triangle, Rectangle {}
record Triangle() implements Polygon {}
record Rectangle() implements Polygon {}
public static void main(String[] args) {
Shape s = new Triangle();
System.out.println(s instanceof Polygon);
}
}En İyi Uygulamalar
Okunabilirlik için mühürlü türü ve alt türlerini birbirine yakın tutun. Küçük, tek dosyalı hiyerarşilerde permits ifadesini atlamayı, dosyalar ayrıldığında ise açıkça listelemeyi tercih edin.
Kısa Kontrol
İzinler yan tümcesi konusundaki anlayışınızı sınayın.
Özet
permits yan tümcesini öğrendiniz.
- İzin verilen alt türleri, mühürlü tür adından sonra listeler.
- Listelenen her tür, mühürlü türü genişletmeli veya uygulamalıdır.
- Tüm alt türler aynı dosyayı paylaşıyorsa atlanabilir.
- Alt türlerin kendisi de hiyerarşiyi genişletmek için mühürlü olabilir.
Sıkça Sorulan Sorular
“permits Yan Tümcesi” dersi ücretsiz mi?
Evet — “permits Yan Tümcesi” 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.
“permits Yan Tümcesi” dersinde ne öğreneceğim?
İzin verilen alt türleri listeleyin 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.
“permits Yan Tümcesi” 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
- Mühürlü Türleri Tanımlama
- permits Yan Tümcesi
- Record'larla Mühürlü Türler
- Mühürlü Türlerde Eksiksiz switch