Junior
Javaда кандай класстардын түрлөрү бар?
sobes.tech AI
AIден жооп
Javaда төмөнкү негизги класстардын түрлөрү бар:
-
Жалпы (Standard Class)
- Поля, ыкмалар, конструкторлорду камтышы мүмкүн.
finalдеп жарыяланбаган болсо, башка класстар мурас кылышы мүмкүн.- Интерфейстерди ишке ашыра алат.
- Кирүү модификаторлору менен жарыяланат (
public,protected,default,private).
-
Абстракт (Abstract Class)
abstractсөзү менен жарыяланат.- Түз түз инстанциялай албайт.
- Абстракттык ыкмалар (реализациясыз) жана жөнөкөй ыкмалар болушу мүмкүн.
- Мурас алуу үчүн; подкласстар абстракттык ыкмалардын реализациясын камсыз кылышы керек.
// Чекит үчүн абстракттык класс abstract class Shape { abstract double area(); // Аянты эсептөө үчүн абстракттык ыкма void display() { // Жөнөкөй ыкма System.out.println("This is a shape."); } } -
Акыркы (Final Class)
finalсөзү менен жарыяланат.- Башка класстар мурас кыла албайт.
- Класс кеңейтүүнү алдын алуу, коопсуздукту камсыздоо же өзгөртүлбөгөн ишке ашырууну камсыздоо үчүн колдонулат.
// Мурунку классты мурас кылууга болбойт final class ImmutableString { private final String value; public ImmutableString(String value) { this.value = value; } public String getValue() { return value; } } -
Энум (Enum)
- Белгилүү константтардын так санына арналган атайын класс түрү.
enumсөзү менен жарыяланат.- Энума константтар алдын ала
public static finalболуп саналат. - Поля, ыкмалар жана конструкторлорду камтышы мүмкүн (
privateскрылган модификатору менен).
// Апта күндөрү үчүн энум enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } -
Анонимдик (Anonymous Class)
- Аты жок класс, ал түзүлүп, бир эле учурда инстанцияланат.
- Интерфейстерди ишке ашыруу же класс кеңейтүү үчүн колдонулат "жылдам" колдонуу үчүн, бир жолу колдонуу керек болсо.
- Ачык конструкторлору болбойт.
// Runnable интерфейсин ишке ашыган анонимдик класс түзүү Runnable r = new Runnable() { @Override public void run() { System.out.println("Running in an anonymous class."); } }; -
Ички (Nested Class)
- Башка класстын ичинде жарыяланган класстар.
- Ички түрлөрү:
- Статикалык ички класстар (Static Nested Class):
staticсөзү менен жарыяланат. Түздөн-түз сырткы класстын эмес, анын статикалык мүчөлөрүнө кире албайт. Жөнөкөй класс катары инстанцияланат. - Ички класстар (Inner Class):
staticдеп жарыяланбаган. Бардык мүчөлөргө, анын ичиндеprivateга да кире алат. Өзүнүн инстанциясын түзүү үчүн сырткы класстын экземпляри керек.
- Статикалык ички класстар (Static Nested Class):
// Чыгарган класс class OuterClass { private String outerField = "Outer"; // Статикалык ички класс static class StaticNestedClass { void display() { System.out.println("Inside StaticNestedClass."); // outerField түздөн-түз жеткиликсиз } } // Ички класс class InnerClass { void display() { System.out.println("Inside InnerClass. outerField: " + outerField); // outerFieldга жетүү } } } -
Рекорддор (Record - Java 14төн баштап)
recordсөзү менен жарыяланат.- Маалымат сактоо үчүн; компилятор автоматтык түрдө конструктор, жеткиликтүү методдор (
accessor methods),equals(),hashCode()жанаtoString()түзөт. - Рекорддун талаалары автоматтык түрдө
finalболот.
// 2D кеңістиктеги нүктө үчүн рекорд record Point(int x, int y) { // Компилятор конструктор, x(), y(), equals(), hashCode(), toString() түзөт }