Sobes.tech
Junior
157

Java'da hangi sınıf türleri vardır?

AI'dan gelen yanıt

sobes.tech yapay zeka

  • Normal (regular / somut) sınıflar: Örneğinilebilir, alanlar, metodlar, yapıcılar içerir.
  • Soyut sınıflar: Doğrudan örneklenemezler. Soyut metodlar (geliştirilmemiş) ve normal metodlar içerebilirler. Alt sınıflar için ortak özellikleri tanımlamak amacıyla kullanılırlar.
    abstract class AbstractClass {
        abstract void abstractMethod(); // Soyut metod
        void regularMethod() {
            System.out.println("Normal metod");
        }
    }
    
  • İç içe sınıflar (nested classes): Başka bir sınıf içinde tanımlanır. Şunlar olabilir:
    • Statik iç içe sınıflar (static nested classes): Dış sınıfın statik olmayan üyelerine erişemezler. Dış sınıf örneği olmadan oluşturulurlar.
      class OuterClass {
          static class StaticNestedClass {
              // ...
          }
      }
      
    • İç sınıflar (inner classes): Tüm dış sınıf üyelerine (özel üyeler dahil) erişebilirler. Dış sınıf örneğine bağlıdırlar.
      class OuterClass {
          class InnerClass {
              // OuterClass üyelerine erişir
          }
      }
      
    • Yerel sınıflar (local classes): Bir metod, döngü veya if bloğu içinde tanımlanır. Erişimleri sınırlıdır.
      class OuterClass {
          void someMethod() {
              class LocalClass {
                  // Yerel
              }
              LocalClass obj = new LocalClass();
          }
      }
      
    • Anonim sınıflar (anonymous classes): İsimsiz, tanımlama veya örnekleme ile aynı anda oluşturulur. Tek kullanımlık kullanımlar içindir.
      interface MyInterface {
          void myMethod();
      }
      
      MyInterface anon = new MyInterface() {
          @Override
          public void myMethod() {
              System.out.println("Anonim sınıf");
          }
      };
      
  • Kayıt sınıflar (records) (Java 14 ve sonrası): Veri saklama amaçlı, değiştirilemez sınıflar için kısa sözdizimi.
    record Person(String name, int age) {
        // Otomatik olarak oluşturulan yapıcılar, getterlar, equals(), hashCode(), toString()
    }