C, PHP, VB, .NET

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


Авторски архив

* Наследяване в Java

Публикувано на 08 октомври 2009 в раздел ПИК3 Java.

Както всеки обектно-ориентиран език за програмиране, така и Java позволява наследяване. Това е възможността един клас да наследи цялата функционалност на друг клас и да я разшири. Класът, който е наследяван се нарича "родителски клас", а класа който наследява се нарича "наследник". Освен да добавят нова функционалност, наследниците също могат да изменят съществуваща.

Нека вземем един примерен клас за деца с метод, в който децата играят играта "камък - ножица - хартия". В главната програма ще пуснем децата да изиграят 10 поредни игри: Прочети още...

.

 


* java.lang.Math

Публикувано на 07 октомври 2009 в раздел ПИК3 Java.

Нека разгледаме още един клас с доста статични методи, който се използва сравнително често. Това е класът Math - с него можем да достъпваме голямо количество математически функции. Ето по-голямата част от тях: Прочети още...

.

 


* Задача за 16-те точки

Публикувано на 04 октомври 2009 в раздел Математика.

Помните ли задачата за 9-те точки? Ето ви същата задача, но направена с 16 точки:

 
. . . .

. . . .

. . . .

. . . .
 

Свържете всички точки с шест прави отсечки без да си вдигате ръката и без да повтаряте. Предполагам, че този път няма да има проблем да се справите, но на тези, които не са решавали задачата с 9-те точки, препоръчвам да потърсят решението сами преди да гледат отговорите в предишната задача. Прочети още...

.

 


* Класове и пакети

Публикувано на 03 октомври 2009 в раздел ПИК3 Java.

Досега често използвахме понятието "обект", а на места се споменаваше понятието "клас". Всъщност в обектно ориентираното програмиране тези две понятия са неразделно свързани. Ще си позволя да направя следните обобщени дефиниции:

(Деф) Клас (class) наричаме набор от ограничения за достъп и описания на възможни действия, които могат да се извършват върху дефинирани променливи

(Деф) Обект наричаме практически представител на даден клас, в който са "попълнени" конкретни данни в дефинираните променливи и така вече е възможно да бъдат извършвани конкретните действия

По този начин можем да приемем, че "класовете са шаблони за обекти". Също използвано определение е, че "класовете описват обектите". Най-често срещаното е, че "класовете са типове за обектите". Последното прави аналогия с връзката "типове данни" и "променливи". Накрая трябва да знаем също, че в Java обектите се създават чрез оператор new и стоят в частта на паметта heap. Техните референции (променливи съдържащи указател към обектите) пък се записват в паметта stack.

Нека вече разгледаме първия пример. Във файл kidsplay.java сме записали: Прочети още...

.

 


* Запалени коли Хюндай пред блока

Публикувано на 30 септември 2009 в раздел Общи работи.

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

Точно си пишех с приятел в ICQ на компютъра, когато приятелката ми се събуди и каза:

- Отиди да видиш защо кучето лае, чух някакво силно тропане по стълбите!

Прочети още...

.

 


* Берра и Ицо

Публикувано на 30 септември 2009 в раздел Кучета.

Преди три дни се видяхме и братовчед ми Ицо в парка. Заедно разходихме Берра:

Ицо и Берра

Той по принцип се страхува от нея, но както виждате лека полека "ледът се разчупва": Прочети още...

.

 


* Регулярни изрази

Публикувано на 27 септември 2009 в раздел ПИК3 Java.

Вече се запознахме с методите indexOf() и lastIndexOf() за String и StringBuffer, чието действие беше да връщат индекс на началото на търсена дума вътре в текст. Чрез допълнителен параметър можеше да се търси второ, трето и т.н. срещане на тази дума. Какво да правим обаче ако ние не знаем точната дума, която търсим? Ако например имаме подаден текст, от който трябва да извадим e-mail адрес, то ние няма как да използваме споменатите два метода, защото ние не знаем самия низ за търсене (нали всъщност го търсим). Именно за такива ситуации се използват регулярните изрази (regular expressions). Прочети още...

.

 


* Динамични низове (StringBuffer, StringBuilder и StringJoiner)

Публикувано на 27 септември 2009 в раздел ПИК3 Java.

Недостатъците породени от непроменимост на низовете от тип String, за които споменахме в миналата статия, все пак могат да бъдат преодоляни. За целта съществува обект наречен StringBuffer. Обекти от този тип са вече истински динамични масиви от символи и поради тази причина можем директно да ги променяме без да има нужда от копиране на целия обект в нов буфер.

За добавяне на низ в края на низ създаден със StringBuffer се използва метод append(): Прочети още...

.

 


* Обект String

Публикувано на 26 септември 2009 в раздел ПИК3 Java.

Досега нееднократно използвахме символни низове. Сега обаче ще се спрем по-подробно на тях. Символните низове (String) съдържат поредица от символи от unicode таблицата. От самото начало трябва специално да отбележим, че символните низове се записват в паметта heap, т.е. те са обекти (именно затова първата буква на String е главна - това е конвенция за различаване на обекти). Можете да си представите един String като масив, в който всеки елемент е unicode символ. За разлика от масивите обаче, към определен елемент (буква) от String трябва да се обръщаме чрез метод: Прочети още...

.

 


* Връзката между наука и практика

Публикувано на 26 септември 2009 в раздел Методика.

Нека се върнем малко назад обратно върху основния въпрос на методиката на обучение - "защо да учим". Науката е създадена, за да прави абстрактни модели на практически проблеми с цел да съхранява универсални решения, да намира нови решения на съществуващи проблеми и да намира решения на нови проблеми. Прочети още...

.