C, PHP, VB, .NET

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


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

* Методи по подразбиране

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

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

.

 


* Ламбда изрази

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

Ламбда изразите са функционалност, която е дълго чакана в Java. Появява се с версия Java 8 и е първата крачка към добавяне на... нека не казваме "елементи", а по-скоро "еквиваленти" на функционално програмиране в езика. При положение, че един от основните конкуренти на Java - .Net framework - ги поддържа още с версия 3.5 от 2007 г., може да се каже, че от Oracle (Sun) са доста закъснели. Разбира се това си има и причина - до известна степен ламбда изразите нарушават основната философия на абстрактния модел на интерфейсите в Java (за това няма да пишем сега, а в следваща статия по-подробно). Тук ще разгледаме общата философия на ламбда изразите и начина на работа с тях. Прочети още...

.

 


* Сървлети с Jetty

Публикувано на 03 март 2015 в раздел Уеб JSP.

Сървлетите са основната технология за динамични уеб страници в Java. Всъщност простите примери за JSP страници, които показахме досега, в крайната си фаза се компилират до сървлети. Нека направим нашия първи сървлет: В тази статия освен работа със сървлети ще покажем и работа със сесийни променливи и предаване на параметри чрез HTTP POST. Прочети още...

.

 


* Директиви в JSP

Публикувано на 12 февруари 2015 в раздел Уеб JSP.

Директивите са специални указания към JSP компилатора. Те не генерират изходни данни, но променят начина, по който самата страница ще бъде обработена. Всички директиви се ограждат с тагове <%@ и %>. Обикновено добавяме директивите в самото начало на JSP страницата, но това не е задължително условие. Синтаксисът за добавяне на директиви е следния: Прочети още...

.

 


* Shorttags и множество блокове

Публикувано на 02 февруари 2015 в раздел Уеб JSP.

При писането на по-сложни уеб страници не е толкова лесно да се отдели статичният от динамичния код. Подходите за решаване на този проблем като цяло са два. Първият е да направим всичко в документа динамичен код и да използваме навсякъде, където трябва да се отпечати статичен HTML, оператор out.print. Това е възможен вариант, но ще се убедите с практиката, че е много трудно осъществим, защото ще ви се наложи на множество места да правите "escape" на символи в текстовите низове. Има и по-добро решение, което води до по-лесно четими документи. То се базира на възможността да отваряме и затваряме <% и %> тагове на множество места в JSP страницата и по този начин да "миксираме" HTML и Java код. Още по-голямо удобство ни носи т.нар. съкратен таг (shorttag) <%=. Когато извършите например <%=var%> то ще бъде еквивалентно на <% out.print(var); %>. По този начин лесно можем да вмъкваме възможно най-компактно динамичен код сред статичния, без това да вреди сериозно на четимостта му (от гледна точка на програмиста естествено, защото в крайния си компилиран вариант няма да има разлика на самата уеб страница). Прочети още...

.

 


* Въведение в Java Server Pages

Публикувано на 31 януари 2015 в раздел Уеб JSP.

Java Server Pages е технология, която ще ви позволи да създавате динамични уеб сайтове. Тя е много подобна като принцип на действие на PHP (споменавам това само защото PHP е много популярен, а не за да започвам с някакви аналогии и сравнения) - миксирате обикновен HTML код със сорс код написан на Java и копирате файлчето в webroot директорията на сървъра, който използвате. Това е - когато заредите този файл през уеб браузър, java кода ще се компилира до servlet (специален вид програми на Java, с които ще се запознаем в детайли по-късно), който от своя страна ще генерира изходен html код, който финално ще бъде предаден на уеб браузъра на клиента. Прочети още...

.

 


* Пепи с шейната

Публикувано на 02 януари 2015 в раздел Семейни.

Днес се разходихме в Борисовата градина. При -10℃ си беше като в Ледена Епоха 3 :) Прочети още...

.

 


* Добрият учител

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

Добрият учител поставя достъпни въпроси и помага допълнително на тези, които не могат да достигнат сами до техните отговори. Лошият учител поставя въпроси и дава готови отговори.

Добрият учител е длъжен да бъде критичен. Лошият учител преподава догматично.

Добрият учител кара учениците си да се съмняват в поднесената им информация и да размишляват по въпроса за нейната истинност. Лошият учител забранява съмнението в достоверността на написаните в учебника твърдения.

.

 


* Задача от контролно 1, вариант 2, 22 ноември 2014 г.

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

Задача 1. Създайте клас за филми (Movie) с член променливи име (name – тип String), времетраене в секунди (length - int) и трейлър (trailer - FileInputStream). Минималният брой на секундите в един филм трябва да e 3600. Създайте само един конструктор - с подадени параметри.

Задача 2. В клас Movie добавете следните методи: Прочети още...

.

 


* Задача от контролно 1, вариант 1, 22 ноември 2014 г.

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

Това е набързо написано (като за контролно :P) примерно решение на задачата от днешната контролна работа. Вероятно може много неща по него да се изгладят. Не е тествано въобще с реални данни - може да не е съвсем коректно. Моля ако някой има време, да го изпробва и да каже ако и къде има проблеми. Изтеглете сорс кода.

Задача 1. Създайте клас за фотоалбум (PhotoAlbum) с член променливи „брой страници“ (pagesCount – тип int) и списък от снимки (масив photos от тип FileInputStream). Максималният брой на снимките в един албум не трябва да превишава pagesCount*3 – това трябва да са границите на масива. Погрижете се новосъздаден фотоалбум да има минимум 10 страници. Освен конструктор с подадени параметри, трябва да създадете и конструктор по подразбиране, в който се създава нов празен албум с 16 страници. Прочети още...

.