C, PHP, VB, .NET

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


Категория ‘ПИК3 Java’

* java.lang.Math

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

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

.

 


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

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

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

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

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

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

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

.

 


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

Публикувано на 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 трябва да се обръщаме чрез метод: Прочети още...

.

 


* Хвърляне на изключения

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

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

.

 


* Методи

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

В Java понятията функции и процедури се обединяват под едно общо наименование - "методи". Спрямо езиците C и C++ тук няма особени изненади - методите приемат като входни параметри данни, обработват ги и връщат резултат от конкретен тип. Методите всъщност са основното средство за логическо разделение на програмния код на отделни модули. По този начин се получава и ефективно "повторно използване на код", както и доста по-опростена поддръжка на програмния код, чрез нива на абстракция.

Вече сме се запознали с главния метод за всяка програма - методът main. Засега ще разгледаме само публични (public) и статични (static) методи, какъвто именно е и main. Когато навлезем в територията на класовете ще се запознаем и с други видове методи.

Декларацията на метод следва следната схема: Прочети още...

.

 


* Изключения

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

Изключението (exception) е събитие, което не е предвидено за нормалното изпълнение на програмата. По принцип добрият начин на програмиране е ние да се подсигуряваме срещу всякакви грешки, като най-често срещаното делене на нула например. Например ако се опитвате да прочетете файл, който в процеса на изпълнение на програмата бива изтрит от друга програма, то се получава изключение java.io.FileNotFoundException.

Изключенията са подход при обектно ориентираното програмиране. Той се налага тогава, когато "готовите методи", които използваме стават прекалено голямо количество. Стандартно когато пишем процедурна програма нашите методи връщат или коректен резултат или резултат за грешка. Изключенията ни дават унифициран метод за "прихващане" на стандартизирани грешки като резултат от извикване на методи. Прочети още...

.

 


* Вход и изход – работа с файлове

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

Вече се запознахме със стандартните вход и изход като байтови потоци. Те всъщност са наследници на абстрактните класове InputStream и OutputStream. Двата класа FileInputStream и FileOutputStream също ги наследяват. Нека разгледаме един пример за програма, която чете информация от един файл и я записва в друг: Прочети още...

.

 


* Стандартен вход и изход

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

Любителите на Linux много харесват Java заради концепцията на езика да работи с входни  и изходни потоци. Това означава една абстракция на входните и изходните данни, които използва и връща програмата. Така чрез дребна настройка може една програма вместо да изкарва данни на екрана - да ги записва във файл, да ги изпрати до принтер, порт на компютъра, друга програма, да ги изпрати към сървър в интернет и т.н.; и обратно - да ги получава от най-различни източници. Независимо с какви данни работят потоците, ние можем да ги разглеждаме просто като последователни парчета данни. Входни са потоците, които програмата получава, а изходни са потоците, които изпраща. Засега обаче ще разгледаме само няколко примера за методи, които работят със стандартния вход и изход (клавиатура и монитор) и само ще загатнем как се пренасочват. В следващата статия ще разгледаме как се чете и пише във файл и как можем да пренасочваме стандартните потоци към файлове.

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

.