Довідник по java

Масиви в JAVA

Масив в JAVA повинен відразу оголошуватися з певною кількістю еллементов. Масиви вожно створювати як одномірні, так і багатовимірні.

.length () Отримання кількості елементів в масиві.

Класи в JAVA

java.lang.Object - батьківський клас для всіх класів. Класи бажано називати з великої літери.

Кожен використовуваний клас із зовнішнього файлу повинен бути включений в імпорті.

Модифікатори доступу в класах:

  • public - даний клас доступний за межами даного пакета.
  • Якщо public не вказується, то даний клас видно тільки всередині даного пакету (package), а отже не буде можливості його імпортувати.

Створення класу:

Ініціалізація класу:

Усередині класу можна реалізувати не тільки змінні а й методи. Методи можуть не повертати ніяких значень (void), а можуть і повертати значення різного типу (String, integer). Якщо метод повертає якісь значення, то обов'язково повинен бути присутнім метод return

Конструктор класу:

Конструктор позвонялет визначити змінні класу в момент його створення.

Метод харантерізуется:

Ім'я Ім'я методу Сигнатура методу Ім'я методу + набір типів параметрів переданих значень Контракт Ім'я методу + тип значення

Існує поняття перегразкі (overload) класу. Це означає, що всередині класу існує безліч конструкторів або методів у яких однакову назву, але різні вхідні дані. Вони можуть бути з різною кількістю змінних, з різними типами змінних або взагалі порожніми.

Статичні змінні / функції класу, це змінні / функції які завжди доступні і є глобальними для цього класу, навіть якщо цей клас ще не ініціалізувати.

У статичної змінної / функції немає класу this тому немає примірника об'єкта.

Розуміннях до статичної змінної / функції класу:

статичний імпорт

Дозволяємо імпортувати статичні змінні або статичні функції класу і отримання доступу до них або виклику в скороченому вигляді.

Метод з перемінним кількістю параметрів.

Метод - функція, властивість - змінна.

Boxing і Unboxing

Boxing (упаковка) - це створення об'єкта типу Object і приміщення в цей об'єкт значення будь-якого типу. При такому присвоєнні значення зовні буде об'єкт типу Object, а всередині Object значення того типу, яке було присвоєно.

Unboxing - це зворотний процес, коли з об'єкта Object витягають значення змінної, але для вилучення потрібно язвно вказати формат, до якого потрібно привести значення. (Cast перетворення)

Перевірка на можливість CAST перетворень.

Основні властивості ООП

Спадкування Здатність класів успадковувати все свойсва і методи іншого класу за винятком конструктора. поліморфізм

Дозволяє перевизначати стандартні методи для дітей, щодо батьків.

Тип об'єкта визначає зону видимості методів і властивостей класу.

Інкапсуляція Можливість обмеження доступу до змінних і методів даного класу для розмежування доступу.

Super - подобу this. Може бути використаний як і super.value =. так і як визоб дефолтного конструктора для батьківського класу.

Модифікатори змінних всередині класу.

public переменнае і методи доступний всюди де імпортований даний клас. private змінні і методи доступні тільки для методів даного класу. protected змінні і методи доступні для даного класу і в його спадкоємців. (Порожній) змінні і методи доступні у всіх класах з даного пакета. transient вказує що компілятор не застосовуватиме оптимізацію з даної змінної. Використовується в багатопотокових додатках.

Nested class

Nested class - клас певний всередині іншого класу, з модифікатором доступу static

Це звичайний клас, але його ім'я задається як "Base class". "Nested Class"

Може використовуватися незалежно від ініціалізації основного класу.

Inner class

Inner class - клас певний всередині іншого класу, без модифікатором доступу (static)

Примірник Inner class не може бути створений без примірника зовнішнього класу.

Можна створювати кілька примірників innerClass на основі одного примірника зовнішнього класу.

Оскільки екземпляр класу створюється на отнове вже існуючого класу, то у Inner класу є доступ до полів батьківського класу на відміну від Nested класу.

Абстрактні класи та методи

Метод, який визначений, але не реалізований називає абстрактним. Якщо в класі існує хоча б один абстрактний метод, то цей клас буде абстрактним теж!

Абстрактний клас - клас, екземпляр якого не можливо створити. Його сенс полягає в тому, що його можна використовувати як базовий клас для створення спадкоємців, а в спадкоємців можна реалізувати всі абстрактні методи.

Інтерфейси (контракти)

Інтерфейси дозволяють узаказать набір методів, які необхідно реалізувати в класі. У класі може бути будь-яку кількість інтерфейсів, які будуть перераховуватися через кому.

Не можна створити екземпляр інтерфейсу, тому що він є абстрактним класом.

Можна створити змінну типу інтерфейс, в якій буде присутній все методи, заявлені в цьому інтерфейсі, і методи Object.

Можна створювати порожні інтерфейси приєднати їх в класах. Це свого роду ярлик для розробника, що клас належить певній групі. Потім за допомогою оператора instanseof можна перевірити клас на пренадлежность певної групи.

локальні класи

Це класи певні всередині якогось методу. Область видимості такого класу обмежена методом, в якому він створений.

Анонімні класи

Класи, визначення яких збігається зі створенням примірника цього класу і записується спільно. Примірник анонімного класу існує тільки один.

Обробка класів

Class "var" = "Клас" .getClass () Отримуємо "ім'я пакета". "Ім'я класу" "var" .getDeclaredFields () Отримуємо масив задекларованих в класі змінних field.getModifiers () Отримуємо модифікатор доступу у переданого поля (змінної)

Колекції в JAVA

Колекції в JAVA - подобу динамічних масивів в С. Для них не потрібно попередньо вказувати розмір, тому що він може бути довільним.

Тип вказується з великої літери: Integer, String, Double

size () Отримання кількості елементів в колекції. add (E e) Додавання нового елемента в колекцію. clear () Видалення всіх елементів колекції contains (Object o) Перевіряє, чи є такий елемент в колекції. equals (Obgect o) Порівнює елементи колекції з Об'єктом. remove (Object o) Видаляє елемент з колекції. iterator () Повертає об'єкт класу Iterator, який дозволяє довільним чином перебрати елементи колекції. toArray () Дозволяє перетворити колекцію в масив Object'ов. toArray (T [] a) Дозволяє перетворити колекцію в масив певного типу.

Колекції типу ArrayList

Якщо тип не вказується, то всі елементи колекції матимуть тип Object.

.get (int index) Отримання значення елемента з позицією index. .set (int index, E element) Дозволяє додати елемент з певним значенням та індексом. .subList (int fromIndex, int toIndex) Дозволяємо вирізати частину колекції.

Колекції типу Map

.get (Object key) Отримання значення (value) елемента з позицією key. .put (K key, V value) Дозволяє додати елемент з певним значенням (value) і ключем (key).

Колекції типу HashMap

На відміну від Map має в своїй структурою не 2 поля, а 3 (K, V, Hash). У хеше зберігатися інформація, яка використовується для порівняння значень, що призводить до зниження часу пошуку / доступу.

Робота з файлами

Створення об'єкта типу File

fileFullName зазвичай робиться константою, де вказується повний шлях до файлу. У Windows системах роздільник використовується подвійний "".

Клас file використовується і для роботи з файлами, і для роботи з папками.

.exists () Перевіряє, чи створений файл з таким ім'ям. .getName () Повертає ім'я файлу / папки .getAbsolutePath () Повертає абсолютне (повний шлях + ім'я як задано) ім'я файлу. .getCanonicalPath () Повертає кононіческое (повний шлях + ім'я) ім'я файлу (звичний формат). .isDirectory () Повертає TRUE якщо файл є дерікторію. .isFile () Повертає TRUE якщо файл є файлом. .length () Повертає розмір файлу в байтах. .lastModified () Дата останньої модифікації файлу в UNIX форматі (мілісекунди). .isHidden () Перевіряє прихованість файлу. .renameTo ( "ім'я файлу") Перейменовує файл. .delete () Видаляє файл. .list () Повертає масив ІМЕН файлів і папок в даному каталозі. .listFiles () Повертає масив файлів і папок в даному каталозі.

читання файлу

запис файлу

FileOutputStream FileOutputStream "файл" = new FileOutputStream ( "шлях і ім'я файлу"); "Файл" .write (); Побайтное запис в файл BufferedWriter BufferedWriter "файл" = new BufferedWriter (new FileWriter ( "ім'я файлу")); PrintWriter PrintWriter "файл" = new PrintWriter ( "ім'я файлу"); "Файл" .close () Закриває файл для запису.

При використанні PrintWriter "файл" з отриманим об'єктом можо працювати як зі звичайною рядком, тобто використовувати printf, println і т.д.

Енуменатор повинен створюватися поза методів:

enum дозволяє перекривати наявні методи і створювати нові всередині нього.

.ordinal () Повертає порядковий номер елемента енумератора. .name () Повертає ім'я елемента енумератора. .values ​​() Повертає масив, що містить всі значення даного типу енумератора. .valueOf () Повертає масив, що містить всі значення даного типу енумератора.

Date і Calendar

Date зберігає кількість мілісекунд (у форматі long) c 01.01.1970 00.00.00

.getDate Повертає поточну дату .getDay Повертає номер дня тижня (0 - неділя) .parse ( "рядок дата") Повертає номер дня тижня (0 - неділя)

Date вважається застарілим, і замість нього рекомендують використовувати Calendar.

DateFormat

Серіалізация і десеріалізацію

Серіалізация

Збереження даних об'єкта в потік. Клас який повинен бути серіалізовані повинен мати інтерфейс Serializable.

десеріалізацію

Відновлення даних об'єкта з потоку.

Для відновлення об'єкта необхідно що б був дотупен клас цього об'єкта і необхідно що б в Серіалізуемое потоці були збережені не тільки дані об'єкта, а й вказівки на клас об'єкта.

ObjectOutputStream Потік, на вході об'єкт, на виході серіалізовані потік байтів. ObjectInputStream Потік, на вході серіалізовані потік байтів, на виході об'єкт.

Схожі статті