1. С какво се характеризира обектно ориентираното програмиране?
За да бъде един програмен език обектно-ориентиран, той трябва не само да позволява работа с класове и обекти, но и трябва да дава възможност за имплементирането и използването на принципите и концепциите на ООП: наследяване, абстракция, капсулация и полиморфизъм.
2. Кои IDEs за работа с JAVA познавате?
Eclipse, IntelliJ IDEA, NetBeans, Java Inventor, NaviCoder, Jcoder Java, SkyIDE, Enide Studio, ObjectScript, DrJava, Javelin, Asterix IDE, jEdit, jGRASP, JSource, JotAzul
3. Какво означава API?
Приложно-програмният интерфейс (на английски: Application Programming Interface, API) e интерфейсът на изходния код, който операционната система или нейните библиотеки от ниско ниво предлагат за поддръжката на заявките от приложния софтуер или компютърните програми.
4. Каква е разликата между абстрактен клас и интерфейс?
Разликата между абстрактен клас и интерфейс може да се определи по следния начин: един клас който е абстрактен може да има имплементация на някой от методите си докато интерфейса няма имплементация на неговите методи, той съдържа единствено декларация на методи.
Когато клас наследява интерфейс, то тогава класа трябва да имплементира всичките методи или свойства на интерфейса. В случай, че клас наследи интерфейс, който пък наследява друг интерсфейс, то тогава класа трябва да имплементира всички свойства и методи на двата интерфейса.
Абстрактният клас е клас който е създаден да се наследява и неможе да съществува самостоятелно.
5. Каква е разликата между обект и клас?
Клас (class) наричаме описание на даден обект от реалността. Класът представлява шаблон, който описва видовете състояния и поведението на обектите (екземплярите), които биват създавани от този клас (шаблон).
Обект (object) наричаме екземпляр създаден по дефиницията (описанието) на даден клас. Когато един обект е създаден по описанието, което един клас дефинира, казваме, че обектът е от тип "името на този клас".
6. Какво означава един метод да е абстрактен?
Абстрактите методи се декларират с модификатор abstract, с което се указва, че това са само прототипи на методи - отстъства тялото на метода.
Абстрактните методи са само декларирани, но не са реални. Тяхната реализация задължително се извършва с подкласа. Класовете, които съдържат поне един абстрактен метод се декларират като абстрактни със същия модификатор abstract.
7. Какво означава инстанция?
Създаването на обект от вече дефиниран клас наричаме инстанциране (instantiation). Инстанция (instance) е фактическият обект, който се създава от класа по време на изпълнение на програмата. Всеки обект е инстанция на конкретен клас.
8. Какво означава конструктор?
Конструктор (constructor) – това е псевдометод, който се използва за създаване на нови обекти.
9. Какво е Garbage Collector?
Garbage collection (GC) е форма на автоматичен мениджър на паметта. Той се опитва да регенерира боклука или паметта, която се заема от обекти, които вече не се използват от програмата. Често се стартира, когато се изчерпва паметта на работещото приложението.
++ В Java съществуват 3 типа генерации на Garbage Collection: Млада генерация - повечето от ново създадените обекти са локализирани там. Тъй като някои обекти стават нечетими, много от тях се създават в младата генерация, а след това изчезват. Обектите, които не стават нечетими и оцеляват от младата генерация се записани тук. По-голяма е от младата генерация. Постоянната (трета) генерация запазва класовете или ограничава символните низове. Тази област определено не е за обекти, които са оцелее след старата генерация, за да останат постоянни. В .Net са 4 типа.
10. Какво означава статична променлива?
Полета, които се наричат статични променливи. Те са общи за всички обекти от даден клас. Тяхната декларация изисква поставянето на специалната дума static пред типа на обекта.
11. Каква е разликата между private и protected?
Ако наследяването е тип protected, то се допуска достъп до членовете на неговия собствен клас, на неговия базов клас, но не се допуска достъп на функции външни за класа. Ако наследяването е тип private, то производният клас няма достъп до private елементите на базовия клас и външни функции.
12. Как трябва да се дефинира метод, който хвърля Exception дефиниран в програмата?
Изключенията се предизвикват или "хвърлят" (throw an exception) от програмен код, който трябва да сигнализира на изпълняващата се програма за грешка или необичайна ситуация. Например ако се опитваме да отворим файл, който не съществува, кодът, който отваря файла, ще установи това и ще хвърли изключение с подходящо съобщение за грешка.
13. Защо казваме, че класът String е immutable?
Класът String има важна особеност - последователностите от символи, записани в променливата от класа, са неизменими (immutable). Веднъж записано, съдържанието на променливата не се променя директно -ако опитаме да променим стойността, тя ще бъде записана на ново място в динамичната памет, а променливата ще започне да сочи към него.
14. Какъв подход бихте избрали при генериране на дълъг символен низ?
Използването на StringBuilder – диманичен обект, даващ възможност да се разшири броя на символите в низа, като посочим стойност за максималния брой знаци, който може да побере.
15. Може ли абстрактен клас да наследява друг абстрактен клас?
Да.
За да бъде един програмен език обектно-ориентиран, той трябва не само да позволява работа с класове и обекти, но и трябва да дава възможност за имплементирането и използването на принципите и концепциите на ООП: наследяване, абстракция, капсулация и полиморфизъм.
2. Кои IDEs за работа с JAVA познавате?
Eclipse, IntelliJ IDEA, NetBeans, Java Inventor, NaviCoder, Jcoder Java, SkyIDE, Enide Studio, ObjectScript, DrJava, Javelin, Asterix IDE, jEdit, jGRASP, JSource, JotAzul
3. Какво означава API?
Приложно-програмният интерфейс (на английски: Application Programming Interface, API) e интерфейсът на изходния код, който операционната система или нейните библиотеки от ниско ниво предлагат за поддръжката на заявките от приложния софтуер или компютърните програми.
4. Каква е разликата между абстрактен клас и интерфейс?
Разликата между абстрактен клас и интерфейс може да се определи по следния начин: един клас който е абстрактен може да има имплементация на някой от методите си докато интерфейса няма имплементация на неговите методи, той съдържа единствено декларация на методи.
Когато клас наследява интерфейс, то тогава класа трябва да имплементира всичките методи или свойства на интерфейса. В случай, че клас наследи интерфейс, който пък наследява друг интерсфейс, то тогава класа трябва да имплементира всички свойства и методи на двата интерфейса.
Абстрактният клас е клас който е създаден да се наследява и неможе да съществува самостоятелно.
5. Каква е разликата между обект и клас?
Клас (class) наричаме описание на даден обект от реалността. Класът представлява шаблон, който описва видовете състояния и поведението на обектите (екземплярите), които биват създавани от този клас (шаблон).
Обект (object) наричаме екземпляр създаден по дефиницията (описанието) на даден клас. Когато един обект е създаден по описанието, което един клас дефинира, казваме, че обектът е от тип "името на този клас".
6. Какво означава един метод да е абстрактен?
Абстрактите методи се декларират с модификатор abstract, с което се указва, че това са само прототипи на методи - отстъства тялото на метода.
Абстрактните методи са само декларирани, но не са реални. Тяхната реализация задължително се извършва с подкласа. Класовете, които съдържат поне един абстрактен метод се декларират като абстрактни със същия модификатор abstract.
7. Какво означава инстанция?
Създаването на обект от вече дефиниран клас наричаме инстанциране (instantiation). Инстанция (instance) е фактическият обект, който се създава от класа по време на изпълнение на програмата. Всеки обект е инстанция на конкретен клас.
8. Какво означава конструктор?
Конструктор (constructor) – това е псевдометод, който се използва за създаване на нови обекти.
9. Какво е Garbage Collector?
Garbage collection (GC) е форма на автоматичен мениджър на паметта. Той се опитва да регенерира боклука или паметта, която се заема от обекти, които вече не се използват от програмата. Често се стартира, когато се изчерпва паметта на работещото приложението.
++ В Java съществуват 3 типа генерации на Garbage Collection: Млада генерация - повечето от ново създадените обекти са локализирани там. Тъй като някои обекти стават нечетими, много от тях се създават в младата генерация, а след това изчезват. Обектите, които не стават нечетими и оцеляват от младата генерация се записани тук. По-голяма е от младата генерация. Постоянната (трета) генерация запазва класовете или ограничава символните низове. Тази област определено не е за обекти, които са оцелее след старата генерация, за да останат постоянни. В .Net са 4 типа.
10. Какво означава статична променлива?
Полета, които се наричат статични променливи. Те са общи за всички обекти от даден клас. Тяхната декларация изисква поставянето на специалната дума static пред типа на обекта.
11. Каква е разликата между private и protected?
Ако наследяването е тип protected, то се допуска достъп до членовете на неговия собствен клас, на неговия базов клас, но не се допуска достъп на функции външни за класа. Ако наследяването е тип private, то производният клас няма достъп до private елементите на базовия клас и външни функции.
12. Как трябва да се дефинира метод, който хвърля Exception дефиниран в програмата?
Изключенията се предизвикват или "хвърлят" (throw an exception) от програмен код, който трябва да сигнализира на изпълняващата се програма за грешка или необичайна ситуация. Например ако се опитваме да отворим файл, който не съществува, кодът, който отваря файла, ще установи това и ще хвърли изключение с подходящо съобщение за грешка.
13. Защо казваме, че класът String е immutable?
Класът String има важна особеност - последователностите от символи, записани в променливата от класа, са неизменими (immutable). Веднъж записано, съдържанието на променливата не се променя директно -ако опитаме да променим стойността, тя ще бъде записана на ново място в динамичната памет, а променливата ще започне да сочи към него.
14. Какъв подход бихте избрали при генериране на дълъг символен низ?
Използването на StringBuilder – диманичен обект, даващ възможност да се разшири броя на символите в низа, като посочим стойност за максималния брой знаци, който може да побере.
15. Може ли абстрактен клас да наследява друг абстрактен клас?
Да.