Junior
Java-da hansı sinif növləri var?
sobes.tech Süni İntellekt
AI-dan cavab
- Adi (regular / concrete) sinflar: İstifadə oluna bilər, sahələr, metodlar, konstruktorlar ehtiva edir.
- Mürəkkəb sinflər (abstract classes): Birbaşa istifadə oluna bilməz. Onlar abstrakt metodlar (implementasiya olmadan) və adi metodlar ehtiva edə bilər. Alt sinflər üçün ümumi xüsusiyyətləri müəyyən etmək üçün istifadə olunur.
abstract class AbstractClass { abstract void abstractMethod(); // Abstrakt metod void regularMethod() { System.out.println("Adi metod"); } } - İç içe sinflər (nested classes): Başqa bir sinf daxilində elan edilir. Onlar:
- Statik iç içə sinflər (static nested classes): Xarici sinfin qeyri-statik üzvlərinə daxil ola bilməzlər. Xarici sinfin nümunəsi olmadan yaradılırlar.
class OuterClass { static class StaticNestedClass { // ... } } - Daxili sinflər (inner classes): Bütün xarici sinif üzvlərinə (xüsusən də şəxsi üzvlərə) daxil ola bilər. Xarici sinif nümunəsinə bağlıdırlar.
class OuterClass { class InnerClass { // OuterClass üzvlərinə daxil olur } } - Yerli sinflər (local classes): Metod, dövr və ya if blokunun daxilində elan edilir. Onların daxil olma hüququ elan olunduqları sahə ilə məhdudlaşır.
class OuterClass { void someMethod() { class LocalClass { // Yerli } LocalClass obj = new LocalClass(); } } - Anonim sinflər (anonymous classes): Adı olmayan, eyni zamanda elan və ya nümunə ilə yaradılır. Bir dəfəlik istifadə üçün.
interface MyInterface { void myMethod(); } MyInterface anon = new MyInterface() { @Override public void myMethod() { System.out.println("Anonim sinif"); } };
- Statik iç içə sinflər (static nested classes): Xarici sinfin qeyri-statik üzvlərinə daxil ola bilməzlər. Xarici sinfin nümunəsi olmadan yaradılırlar.
- Yazı sinfləri (records) (Java 14-dən): Məlumatların saxlanması üçün nəzərdə tutulmuş dəyişməz sinflər üçün kompakt sintaksis.
record Person(String name, int age) { // Avtomatik yaradılan konstruktor, getterlər, equals(), hashCode(), toString() }