Тест по теория на Java ООП Flashcards

1
Q

Какво е Композиция

A

Използване на обекти от съществуващи класове в новия клас. Използва се многократно функционалността на съществуващия код.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какво е наследяване

A

Новият клас се създава като тип на съществуващ клас. Използва се формата на съществуващ клас, като добавяме към нея код, без да променяме съществуващия клас

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какво е Полиморфизъм

A

Свойството на обектите от един и същи тип да имат един и същи интерфейс, но с различна реализация на този интерфейс

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Разлика между композиция и наследяване

A

Композиция се използват обекти от съществуващи класове в новия клас.
Наследяване се използва при преобразуване нагоре.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Какво е късно свързване

A

Ако се изпрати съобщение до обект извикваният код не се определя до времето за изпълнение. Java използва специален код, който изчислява адреса на тялото на функцията, използвайки информация, съхранявана в самия обект

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какво е свързване

A

Компилаторът генерира обръщение към определено име на функция, програмата за свързване го преобразува в абсолютен адрес на кода, който трябва да се изпълни

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Късно свързване на базата на какво се прави

A

На базата на информация

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Като създаваме един обект можем ли да променим референцията при наследяване

A

Новосъздадения обект обикновенно не се присвоява на променлива от тип съвпадащ с класа на обекта. В променливата се запазва само референцията към новосъздадения обект

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Обяснете какво е поведението на конструктора

A

Конструктора заделя памет в хийпа, където ще се съхраняват данните които се пазят в полетата на конкретния обект, инициализира всяко поле с подразбираща се за типа му стойност и връща референция към новосъздадения обект

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Взаимодействие между конструктори

A

Съществува механизъм, чрез който един конструктор да извиква конструктор деклариран в същия клас. Извикването става с помощта на this(параметри)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какво е вътрешен клас

A

Един клас може да се дефинира в друг клас. Обект от вътрешен клас може да бъде създаден само във връзка с обект от прилежащия външен клас

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Отношение между вътрешен и външен клас

A

В един самостоятелен външен клас може да има няколко вътрешни класове, всеки от които допълва същия интерфейс или наследява от същия клас по различен начин

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Има ли вътрешен клас достъп до данни на външен клас

A

Вътрешните класове могат да съществуват и без външния клас, в който са разположени, но нямат достъп до неговата this инстанция.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Какво е контролна рамка чрез вътрешния клас

A

Структура за съхраняване на обекти от тип “Event”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

. Принцип на идентификация на типовете ?

A

Искаме да правим универсални структури, които да са еднотипни (Stack)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Какво е генетично програмиране

A

В основата си терминът означава параметризирани типове. Параметризираните типове са важни те позволяват създаване на класове, интерфейси и методи , в които типът данни, с които те работят , е определен като параметър. Клас , интерфейс или метод , който работи с параметър за тип, се нарича генетичен: генетичен клас и генетичен метод.

17
Q

Какво е функционално програмиране

A

Ламбда израз – нова езикова конструкция, води към нов (за Java) стил на програмиране, познат като “функционално програмиране“ . С нейна помощ, някои решения могат да бъдат формулирани по един елегантен начин .Особено предоставят предимства в областта на:
- Рамки – напр. колекции (Collections-Framework)
-Паралелна обработка.
Ключът към разбирането на ламбда са две конструкции :
-Първата е самата ламбда .
- Втората е функционалният интерфейс.
Един ламбда израз по същество е анонимен метод по този метод обаче не се изпълнява сам и вместо това се използва за изпълнение на метод, дефиниран от функционален интерфейс. Така, един ламбда израз резултира до една форма на анонимен клас. Ламбда изразите често се наричат затваряне (closure).
Ламбда: контейнер на първичен код, подобен на един метод, обаче без:
- Име
- Явно задаване на тип на резултата
- Възможни изключения
- Т.е. анонимен метод със следния синтаксис:
(списък параметри)  { израз или оператори }
ФУНКЦИОНАЛНИ ИНТЕРФЕЙСИ съществено ламбда израз може да се използва само в контекст, в който е специфициран целеви тип с ключовият аспект на функционалния интерфейс е, че може да се използва с всеки ламбда израз, който е съвместим с него.

18
Q

Може ли да дефинираме метод?

A

Да

19
Q

Създаване и използване на обекти

A

Създаването н става чрез new. Извикването и достъп до полетата става с оператора „ . ”

20
Q

Разликите между интерфейс и абстрактен клас

A

Абстрактен клас - Това са методи, които съдържат само декларация, но нямат имплементация . Интерфейса може да съдържа абстрактни методи и член променливи

21
Q

Какви методи и променливи познавате в джава

A

Методи на обекти (инстанции), Методи на класове (статични), Генетични методи, Не-генетични методи
Променливи - local class/static, instance

22
Q

Композиция

A

Използване обекти от съществуващи класове в новия клас

23
Q

Възможно ли е в един fail .java да декларираме повече от един клас

A

Да

24
Q

Каква става променливата като я поставиш след final

A

Константа ако final стои пред клас не може да се наследява

25
Q

Какво означава Implements? – абстрактен метод

A

Interface има един единствен runnable метод Implements.

26
Q

Възможно ли е множествено наследяване в Java да реализира множествено наследяване на класове

A

Не

27
Q

Може ли в Java да се реализира механизъм за множествено наследяване?

A

Да като се имплементират няколко интерфейса.

28
Q

Как се реализират нишки в Java?

A

като наследим класа Thread и като наследим run ____

29
Q

Може ли да се изпълни sleep извън try cash box?

A

Не, свърши ли try cash box-a нишката е свършила своята работа.

30
Q

Кои са модификаторите за достъп и за какво служат?

A

default(по-подразбиране), public(общо достъпен), private(ограничен достъп)

31
Q

Типове методи?

A

void (не връща стойност) – тип. Методите винаги започват с малки букви имат отваряща и затваряща скоба пример: $sectionName(Type, Name, ——), докато променливите са също с малка буква, но след тях няма скоба.

32
Q

Видове класове?

A

Integer, Boolean, Float, Double, Char(с единична кавичка ‘ ‘ ), String (с двойна кавичка “ ”)

33
Q

Каква е разликата между декларация и инициализация?

A

Инициализация задаваме стойност, при декларацията създаваме променлива, но може да и зададем стоиността по-късно.

34
Q

Каква е разликата между equals() и ==

A

”==” сравнява местоположението на паметта на два обекта, докато “equals” сравнява съдържанието на два обекта