Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикладне програмування.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
448.52 Кб
Скачать

2.1. Характеристика класу Calendar

В об'єктно-орієнтованому програмуванні, класи використовуються для групування пов'язаних змінних та функцій. Клас описує набір інкапсульованих змінних екземпляра та методів (функцій), можливо, разом з реалізацією цих типів із конструктором, який може використовуватись для створення екземплярів класу.

Клас є зв’язаним пакетом, який складається із спеціальних метаданих часу компіляції. Він описує правила за якими діють об'єкти; ці об'єкти називаються «екземплярами» цього класу. Клас визначає структуру даних, що містить кожний екземпляр, і, також, методи (функції), які обробляють дані екземпляра та виконують завдання; ці методи часто називають «поведінкою». Метод є функцією, що має доступ до даних об'єкта. Клас є специфічним типом даних об'єкта по відношенню до окремого прошарку. Клас може мати представлення під час виконання програми, який надає допомогу в роботі з метаданими класу.

Calendar є абстрактним класом. Для різних платформ реалізуються конкретні підкласи календаря. На даний момент існує реалізація Григоріанського календаря – GregorianCalendar. Примірник цього класу виходить викликом статичного методу getInstance (), який повертає екземпляр класу Gregorian. Підкласи класу Calendar повинні інтерпретувати об'єкт Date по-різному. У майбутньому передбачається реалізувати так само місячний календар, використовуваний в деяких країнах. Calendar забезпечує набір методів дозволяють маніпулювати різними «частинами» дати, тобто отримувати та встановлювати дні, місяці, тижні і т.д.

Якщо під час установок календаря упущені деякі параметри, то для них будуть використані значення за замовчуванням для початку відліку, тобто YEAR = 1970, MONTH = JANUARY, DATE = 1 і т.д. Для зчитування, установки маніпуляції різних «частин» дати використовуються методи get(int filed), set(int filed, int value), add(int field, int amount), roll(int field, inr amount), змінна типу int з ім'ям filed вказує на номер поля з яким потрібно зробити операцію. Для зручності всі ці поля визначені в Calendar, як статичні константи типу int. Розглянемо докладніше порядок виконання перерахованих методів. set(int field, int value).

Даний метод виробляє установку будь-яку роль дати. Насправді після виклику цього методу, негайного перерахунку дати не проводиться. Перерахунок дати буде здійснено тільки після виклику методів get(), getTime() або TimeInMillis(). Таким чином послідовна установка декількох полів, не викличе не потрібних обчислень.

Оскільки Сalendar – абстрактний клас, його екземпляри створюються чотирма статичними методами за заданою локалі і / або часовому поясу: Calendar getlnstance ()

Calendar getlnstance (Locale loc)

Calendar getlnstance (TimeZone tz)

Calendar getlnstance (TimeZone tz, Locale loc)

Для роботи з місяцями визначені цілочисельні константи від JANUARY до DECEMBER, для роботи з днями тижня – константи MONDAY до SUNDAY.

Перший день тижня можна дізнатися методом int getFirstDayOfWeek (), a встановити – методом setFirstDayOfWeek(int day), наприклад:

setFirstDayOfWeek (Calendar.MONDAY) Решта методи дозволяють переглянути час і часовий пояс або встановити їх.