Junior
Java-da hansı sinif növləri mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da aşağıdakı əsas sinif növləri mövcuddur:
-
Standart Sinif (Standard Class)
- Sahələr, metodlar, konstruktorlar daxil edə bilər.
finalkimi elan edilmədiyi halda, digər siniflər tərəfindən miras alına bilər.- İnterfeysləri həyata keçirə bilər.
- Giriş modifikatorları ilə elan edilir (
public,protected,default,private).
-
Abstrakt Sinif (Abstract Class)
abstractaçar sözü ilə elan edilir.- Birbaşa nümunə götürülə bilməz.
- Abstrakt metodlar (implementasiyasız) və adi metodlar daxil edə bilər.
- Miras üçün nəzərdə tutulub; alt siniflər abstrakt metodları həyata keçirməlidir.
// Şəkil üçün abstrakt sinif abstract class Shape { abstract double area(); // Sahənin hesablanması üçün abstrakt metod void display() { // Adi metod System.out.println("Bu, bir şəkil."); } } -
Final Sinif (Final Class)
finalaçar sözü ilə elan edilir.- Digər siniflər tərəfindən miras alına bilməz.
- Sinfi genişləndirmənin qarşısını almaq, təhlükəsizliyi təmin etmək və ya dəyişməzliyi təmin etmək üçün istifadə olunur.
// Miras alınmayan final sinif final class ImmutableString { private final String value; public ImmutableString(String value) { this.value = value; } public String getValue() { return value; } } -
Enum (Enumlar)
- Sabitlərin dəqiq bir dəstini təmsil etmək üçün nəzərdə tutulmuş xüsusi sinif növü.
enumaçar sözü ilə elan edilir.- Enum sabitləri standart olaraq
public static final-dır. - Sahələr, metodlar və konstruktorlar ola bilər (
privategizli modifikatoru ilə).
// Həftənin günləri üçün enum enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } -
Anonim Siniflər (Anonymous Class)
- Adı olmayan sinif, eyni zamanda yaradılır və nümunə götürülür.
- İnterfeyslərin həyata keçirilməsi və ya siniflərin "canlı" genişləndirilməsi üçün tez-tez istifadə olunur, bir dəfəlik istifadə üçün.
- Açıqlanan konstruktorlara malik ola bilməz.
// Runnable interfeysini həyata keçirən anonim sinifin yaradılması Runnable r = new Runnable() { @Override public void run() { System.out.println("Anonim sinifdə işləyir."); } }; -
Nested Siniflər (Nested Class)
- Digər sinif daxilində elan olunan siniflər.
- İki növü var:
- Statik Nested Siniflər (Static Nested Class):
staticilə elan edilir. Xarici sinifin qeyri-statik üzvlərinə birbaşa daxil ola bilməz. Adətən adi sinif kimi nümunə götürülür. - İç Siniflər (Inner Class):
staticilə elan edilmir. Xarici sinifin bütün üzvlərinə, o cümlədənprivate-yə daxil ola bilər. Öz nümunəsini yaratmaq üçün xarici sinifin nümunəsi tələb olunur.
- Statik Nested Siniflər (Static Nested Class):
// Xarici sinif class OuterClass { private String outerField = "Outer"; // Statik nested sinif static class StaticNestedClass { void display() { System.out.println("StaticNestedClass daxilində."); // Xarici sinifin outerField-ə birbaşa daxil olmur } } // İç sinif class InnerClass { void display() { System.out.println("InnerClass daxilində. outerField: " + outerField); // outerField-ə daxil olmaq } } } -
Qeydiyyat Sinifləri (Record - Java 14-dən etibarən)
recordaçar sözü ilə elan edilir.- Məlumatların saxlanması üçün nəzərdə tutulub. Kompilyator avtomatik olaraq konstruktoru, giriş metodlarını (
accessor methods),equals(),hashCode()vətoString()-i yaradır. - Record sahələri avtomatik olaraq
final-dır.
// 2D məkanda nöqtəni təmsil edən qeydiyyat record Point(int x, int y) { // Kompilyator konstruktoru, metodlar x(), y(), equals(), hashCode(), toString() yaradacaq }