Junior
Java'da hangi sınıf türleri vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da aşağıdaki ana sınıf türleri bulunmaktadır:
-
Standart Sınıf (Standard Class)
- Alanlar, metodlar, yapıcılar içerebilir.
finalolarak ilan edilmediyse diğer sınıflar tarafından kalıtılabilir.- Arabirimleri uygulayabilir.
- Erişim belirteçleri (
public,protected,default,private) ile ilan edilir.
-
Soyut Sınıf (Abstract Class)
abstractanahtar kelimesiyle ilan edilir.- Doğrudan örneklenemez.
- Soyut metodlar (geliştirilmemiş) ve normal metodlar içerebilir.
- Miras almak içindir; alt sınıflar soyut metodların uygulamasını sağlamalıdır.
// Şekil için soyut sınıf abstract class Shape { abstract double area(); // Alan hesaplama soyut metodu void display() { // Normal metod System.out.println("This is a shape."); } } -
Son Sınıf (Final Class)
finalanahtar kelimesiyle ilan edilir.- Diğer sınıflar tarafından kalıtılamaz.
- Sınıfın genişletilmesini engellemek, güvenliği sağlamak veya değişmezliği garanti altına almak için kullanılır.
// Kalıtılamayan son sınıf final class ImmutableString { private final String value; public ImmutableString(String value) { this.value = value; } public String getValue() { return value; } } -
Enumlar (Enum)
- Sabitler kümesini temsil etmek için tasarlanmış özel sınıf türüdür.
enumanahtar kelimesiyle ilan edilir.- Enum sabitleri varsayılan olarak
public static final'dır. - Alanlar, metodlar ve yapıcılar içerebilir (
privateile).
// Haftanın günleri için enum enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } -
Anonim Sınıflar (Anonymous Class)
- İsimsiz sınıf, aynı anda oluşturulup örneklendirilen sınıf.
- Genellikle arayüzleri uygulamak veya sınıfları "canlı" olarak genişletmek için kullanılır, tek seferlik kullanım gerektiğinde.
- Açık yapıcılar olamaz.
// Runnable'ı uygulayan anonim sınıf oluşturma Runnable r = new Runnable() { @Override public void run() { System.out.println("Running in an anonymous class."); } }; -
İç içe sınıflar (Nested Class)
- Bir başka sınıfın içinde bildirilen sınıflar.
- İki türü vardır:
- Statik iç içe sınıflar (Static Nested Class):
staticile ilan edilir. Dış sınıfın statik olmayan üyelerine doğrudan erişemez. Normal sınıf gibi örneklenir. - İç sınıflar (Inner Class):
staticolarak ilan edilmez. Tüm dış sınıf üyelerine,privatedahil, erişebilir. Bir dış sınıf örneğine ihtiyaç duyar.
- Statik iç içe sınıflar (Static Nested Class):
// Dış sınıf class OuterClass { private String outerField = "Outer"; // Statik iç içe sınıf static class StaticNestedClass { void display() { System.out.println("Inside StaticNestedClass."); // outerField'a doğrudan erişim yok } } // İç sınıf class InnerClass { void display() { System.out.println("Inside InnerClass. outerField: " + outerField); // outerField erişimi } } } -
Kayıt sınıflar (Record - Java 14 ve sonrası)
recordanahtar kelimesiyle ilan edilir.- Veri saklamak için tasarlanmıştır. Derleyici otomatik olarak yapıcı, erişim metodları (
accessor methods),equals(),hashCode()vetoString()üretir. - Record alanları otomatik olarak
final'dır.
// 2D uzayda nokta temsil eden kayıt record Point(int x, int y) { // Derleyici yapıcı, x(), y(), equals(), hashCode(), toString() metodlarını oluşturur }