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

1. Поняття класа-оболонки. Розташування цих класів ієрархії класів Java

Клас-оболонка – це клас, який надає можливість проводити над примітивними типами операції, які властиві тільки об’єктам класів (equals, compareTo, а також методи, які властиві кожному класу).

Класи оболочки перевантажують методи класу Object, як equals, compareTo,HashCode, реалізують интерфейс Comparable (CompareTo).

Наприклад при створені колекції не можна використовувати примітивні типи:

Map<int,double> map;// помилка

Map<Integer,Double> map;// вірно

2. Операції упаковки та распаковки класів-оболонок

Для операції упаковки з примітивного типу в об'єкт можна передати значення типу в конструктор створеного об'єкта або або звичайним присвоєнням(авто упаковка).

Integer num = new Integer(5);

Integer num=5;

static Integer.ValueOf(5);

Для операції розпаковки с об'єкту в примітивний тип, можна використати метод Value або звичайне присвоєння(авто розпаковка).

int a=num;

int a= num.IntValue();

3. Практичне застосування класів-оболонок

Для створення колекцій не можна використовувати примітивні типи, тому для вирішення цієї проблеми були створені класи-оболочки.

Map<int,double> map;// помилка

Map<Integer,Double> map;// вірно

Також класи-оболонки можуть мати значення null.

Представляють набір утиліт (функцій), констант, які використовуються для простих типів.

4. Порівняння рядків

Порівнювати рядки можна різними способами:

- за допомогою оператора ==, порівнюються посилання об'єктів

- за допомогою метода boolean Equals (Object o) повертає true, якщо об'єкти рівні або false якщо ні.

- за допомогою метода int compareTo (назв об о) повертає 0 якщо рівні, від'ємне значення якщо об'єкт меньший або більше 0 якщо більше.

boolean equalsIgnoreCase(String anotherString)- порівняння рядків без врахування регістру

compareToIgnoreCase (String s)

5. Особливості класу String для обробки рядків

Особливістю об'єкта класу String є те, що його значення не може бути змінено після створення об'єкта за допомогою будь-якого методу класу, так як будь-яка зміна рядка приводить до створення нового об'єкта. При цьому посилання на об'єкт класу String можна змінити так, щоб вона вказувала на інший об'єкт і тим самим на інше значення.

Клас String підтримує декілька конструкторів, наприклад: String (), String (String str), String (byte asciichar []), String (char [] unicodechar), String (StringBuffer sbuf), String (StringBuilder sbuild) і ін. Ці конструктори використовуються для створення об'єктів класу String на основі ініціалізації значеннями з масиву типу char, byte і ін.

Клас String містить наступні методи для роботи з рядками:

String concat (String s) або "+" - злиття рядків;

boolean equals (Object ob) і equalsIgnoreCase (String s) - порівняння рядків з урахуванням і без урахування регістра відповідно;

int compareTo (String s) і compareToIgnoreCase (String s) - лексикографическое порівняння рядків з урахуванням і без урахування регістру. Метод здійснює віднімання кодів символів викликає і переданої в метод рядків і повертає ціле значення. Метод повертає значення нуль в разі, коли equals () повертає значення true;

boolean contentEquals (StringBuffer ob) - порівняння рядка і вмісту об'єкта типу StringBuffer;

String substring (int n, int m) - витяг з рядка підрядка довжини mn, починаючи з позиції n. Нумерація символів в рядку починається з нуля;

String substring (int n) - витяг з рядка підрядка, починаючи з позиції n;

int length () - визначення довжини рядка;

int indexOf (char ch) - визначення позиції символу в рядку;

static String valueOf (значення) - перетворення змінної базового типу до рядка;

String toUpperCase () / toLowerCase () - перетворення всіх символів викликає рядка в верхній / нижній регістр;

String replace (char с1, char с2) - заміна в рядку всіх входжень першого символу другим символом;

String intern () - заносить рядок в "пул" литералов і повертає її об'єктну посилання;

String trim () - видалення всіх прогалин на початку і кінці рядка;

char charAt (int position) - повернення символу із зазначеної позиції (нумерація з нуля);

boolean isEmpty () - повертає true, якщо довжина рядка дорівнює 0;

byte [] getBytes (), getChars (int srcBegin, int srcEnd, char [] dst, int dstBegin) - витяг символів рядка в масив байт або символів;

static String format (String format, Object ... args), format (Locale l, String format, Object ... args) - генерує форматований рядок, отриману з використанням формату, інтернаціоналізації та ін .;

String [] split (String regex), split (String regex, int limit) - пошук входження в рядок заданого регулярного виразу (роздільник) і ділення вихідної рядки відповідно до цього на масив рядків.

У всіх випадках виклику методів, що змінюють рядок, створюється новий об'єкт типу String.

public boolean startsWith(String prefix)

public boolean endsWith(String suffix)

public boolean startsWith(String prefix, int toffset)