C, PHP, VB, .NET

Дневникът на Филип Петров


Категория ‘ПИК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.

Когато имаме многонишково приложение, ние много често работим и със споделени ресурси. Нека демонстрираме с един пример - имаме масив с наредени числа. Имаме две нишки - такава, която променя числата с произволни и такава, която сортира числата по големина: Прочети още...

.