Категория ‘ПИК3 Java’
* Метод hashCode()
Публикувано на 08 декември 2010 в раздел ПИК3 Java.
Хеширането е важна част от езика за програмиране Java. То ни позволява при определени случаи ефективно и бързо да сравняваме обекти подобно на стандартния метод equals(). Когато на обект от даден клас извикаме метод "hashCode()", то като резултат получаваме цяло число (int). Идеята е следната:
"Ако два обекта са еднакви при сравнение с equals(), техните методи hashCode() трябва да връщат равни числа" (1) Прочети още...
* Задачи от изпит 10.12.2009г.
Публикувано на 13 декември 2009 в раздел ПИК3 Java.
Задача 1. Напишете интерфейс “Геометрична Фигура” (Figure), в който се дефинират действията “сравнение на текущата фигура с друга подадена като параметър” (метод equals, който трябва да връща стойност от тип boolean) и “отпечатване на информацията за фигурата на екрана в конзолата” (print). Прочети още...
* Примерна задача 4
Публикувано на 06 декември 2009 в раздел ПИК3 Java.
Задача 1: Създайте клас „Картина”, в който се описва името на картината, нейният автор, цена, година на създаване и уникален номер. Дефинирайте конструктори по подразбиране (данните се четат от клавиатурата) и чрез подадени параметри. Направете необходимите get и set методи. Напишете метод, който отпечатва информацията за картината в подходящ вид в конзолата.
Задача 2: Прочети още...
* Примерна задача 3
Публикувано на 28 ноември 2009 в раздел ПИК3 Java.
Задача 1: Създайте клас "работник на хонорар", в който са дефинирани лично, фамилно име, заплащане (левове за час) и личен номер (id) от тип int. Направете конструктори по подразбиране (въвежда се информацията от клавиатурата) и чрез подадени параметри. Създайте необходимите get и set методи. Напишете метод, който отпечатва информация за работника на екрана в подходящ вид. Напишете метод, който по подаден параметър "брой изработени часове" връща парите, които работникът трябва да получи. Прочети още...
* Примерна задача 1
Публикувано на 31 октомври 2009 в раздел ПИК3 Java.
1. Дефинирайте клас, описващ дати от календара.
а) Дефинирайте конструктор по подразбиране и такъв с параметри за задаване на дата.
б) Дефинирайте за него подходящите get и set методи.
в) Направете необходимите проверки за валидност на данните (ако не са валидни да се генерира изключение): Прочети още...
* Списъци, динамични масиви, стекове и опашки
Публикувано на 26 октомври 2009 в раздел ПИК3 Java.
1. Масиви: Когато се заговори за понятието "списък" всеки начинаещ програмист моментално се досеща за най-често използваната в учебните примери структура - масив. Масивите представляват наредени елементи от един и същи тип данни (може да бъде както примитивен тип, така и данни от определен клас). Те са с константна дължина (т.е. точно определен брой елементи). Това е колкото полезно (няма опасност от "утечки на памет"), толкова и неудобно (трябва да се пазим от проблема с "препълване", често се заделя повече памет отколкото е необходима, и др.). Можем да обобщим проблемите свързани с използването на масив в три точки: Прочети още...
* Изключения дефинирани от потребителя
Публикувано на 21 октомври 2009 в раздел ПИК3 Java.
Вече се запознахме подробно как се хвърлят изключения в Java. Веднага остава въпроса "можем ли ние сами да си дефинираме изключения". Отговорът е положителен.
Всичко, което трябва да направите при дефиниране на изключение е да създадете клас, който наследява клас Exception: Прочети още...
* Wait, notify и notifyAll
Публикувано на 19 октомври 2009 в раздел ПИК3 Java.
Вече се запознахме с методът sleep() за нишки в Java, както и възможността да прекъснем "спането" на нишката чрез метод interrupt(). Използването на метод sleep() всъщност прехвърля текущата нишка в "Not Runnable" статус за определен период от време и по този начин дава процесорно време на другите нишки. Важно е да се спомене, че ако методът, който е извикал sleep(), е синхронизиран (synchronized), никой не може да достъпи обектите в него по време на неговия "sleep" период! Извикването на "interrupt()" за тази нишка ще прекъсне sleep() преждевременно.
Когато имаме обект (говорим за който и да е обект създаден с оператор new), разполагаме с нестатичен метод Object.wait(). Този метод на пръв поглед предизвиква същия ефект както Thread.sleep() - прехвърля текущата нишка (тази, която е извикала метода) в "Not Runnable" статус за определено време. Такъв обект се нарича "заключващ обект" за нишката. Първата разлика е, че Object.wait() може да бъде извикан само в синхронизиран метод. Втората разлика е, че Object.wait() може да приспи нишката за неопределено време, докато Thread.sleep() е с фиксирано. Освен това sleep() е статичен метод - по-правилно е да го извикваме чрез Thread.sleep(), а не чрез инстанция на обект. Прочети още...
* Синхронизация на нишки
Публикувано на 17 октомври 2009 в раздел ПИК3 Java.
Когато имаме многонишково приложение, ние много често работим и със споделени ресурси. Нека демонстрираме с един пример - имаме масив с наредени числа. Имаме две нишки - такава, която променя числата с произволни и такава, която сортира числата по големина: Прочети още...
* Нишки
Публикувано на 16 октомври 2009 в раздел ПИК3 Java.
Понятието "нишки" можете да разгледате като "разклонение на една програма на подпрограми, които работят едновременно". Представете си например един HTTP сървър. Работата, която извършва е да прехвърля данните поискани от даден клиент. Когато обаче има повече от един клиент едновременно, то ако нямаме "многонишковост" те трябва да се изчакват един друг на "опашка". Ако имаме един клиент, който изтегля огромно количество информация, то всички останали би трябвало да го изчакват, а това определено не е уместно. Пускането на нишка за всеки един клиент означава, че ние ще обслужваме всички с равно количество процесорно време, независимо кой се е свързал с HTTP сървъра първи, кой втори и кой последен. Прочети още...