Категория ‘ПИК3 Java’
* Пример за приложения използващи сокети
Публикувано на 31 октомври 2011 в раздел ПИК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.
Когато имаме многонишково приложение, ние много често работим и със споделени ресурси. Нека демонстрираме с един пример - имаме масив с наредени числа. Имаме две нишки - такава, която променя числата с произволни и такава, която сортира числата по големина: Прочети още...