Professional Documents
Culture Documents
1.Какво е C#?
C# e строго типизиран обектно-ориентиран език за програмиране от високо ниво.
Типизацията му е статична. Той е създаден от Microsoft през 2001 г., а последното
обновление за него излезе в края на 2021, тoест това е един актуален език.
По-голяма гъвкавост: Поради това, динамичните езици често предоставят по-голяма гъвкавост, но
това също може да доведе до грешки по време на изпълнение, ако типовете не са както се очаква.
Примери-
JavaScript
PHP
Perl
Python
По-рано откриване на грешки: По време на компилация, ако има несъответствие между типовете
на данните, това обикновено води до грешка и програмата не може да бъде компилирана
успешно.
Примери-
C#
C
C++
Java
4. 4 Принципа на ООП
Eнкaпсулация (Encapsulation):
Дефиниция: Eнкапсулацията се отнася до идеята за скриване на детайлите на
реализацията на обект и предоставяне на публичен интерфейс за взаимодействие.
Цел: Целта е да се предотврати прекомерната зависимост от вътрешната структура на
класовете и да се предостави по-безопасен и контролиран достъп до данните и
функционалността на обектите.
Наследяване (Inheritance):
Дефиниция: Наследяването позволява на нов клас (наследник) да придобие
характеристики и функционалности на друг клас (родител). Това насочва отношенията
между класовете и позволява повторната употреба на код.
Цел: Спестява време и усилия при създаването на нови класове, като се използва вече
съществуващия код.
Полиморфизъм (Polymorphism):
Дефиниция: Полиморфизмът позволява на обекти от различни класове да се обработват
като обекти от един и същи клас. Това може да бъде постигнато чрез презаписване на
методи (методи с еднакви имена, но различна реализация) или използване на
интерфейси.
Цел: Улеснява обработката на обекти и методи, които могат да бъдат приложени към
обекти от различни класове без необходимост от промяна в съответния код.
Абстракция (Abstraction):
Дефиниция: Абстракцията позволява моделирането на сложни системи, като се фокусира
върху важните характеристики и игнорира детайлите, които не са от значение за дадения
контекст.
Цел: Помага в създаването на обобщения и интерфейси, които предоставят ясна и лесно
разбираема представа за вътрешността на системата.
5. Какво е компилатор?
Компилаторът е програмен инструмент, който преобразува програмен код от един език (най-често
високоуровнев език) в еквивалентен му код на друг език (най-често машинен код), който може да
бъде изпълнен от компютър. Процесът на компилация включва няколко стъпки: Анализ на кода,
Създаване на междинен код, Генериране на целеви код, Свързване.
6. Какво е ООП?
ООП означава Обектно-Ориентирано Програмиране и представлява начин за
програмиране, базиран на концепцията за "обекти". Този подход се фокусира върху
структурирането на програмите около обекти, които представляват конкретни екземпляри
на класове.
7. Какво е референция, референтни типове?
Референция се използва за обозначаване на променлива или стойност, която съдържа
адрес (или линк) към обект в паметта, вместо самите данни на обекта. Референтните
типове се отнасят към типове данни, чиято променлива съдържа референция, а не
директно данните.
Ето няколко ключови аспекта относно референциите и референтните типове:
Референтни Типове:
В много програмни езици, типовете данни се делят на два основни вида: референтни и
стойностни.
Референтни типове са такива, чиято променлива съдържа референция към данните, а не
самите данни.
Примери за референтни типове включват обекти, низове (strings), масиви, списъци и
други сложни структури данни.
Променливи и Референции:
При използването на референтни типове, променливата сама съдържа референция, която
сочи към обекта в паметта.
Променливата не съдържа директно данните на обекта, а по-скоро адрес, на който тези
данни се намират.
8. Stack и Heap
"Stack" и "Heap" са две области в паметта на компютъра, които се използват по различен начин
при изпълнението на програмите.
Stack:
Характеристики:
Данните в стека се добавят и премахват във формат на Last-In-First-Out (LIFO), като стекът расте и
се свива по време на изпълнение.
Heap:
Какво е Heap? Heap е област в паметта, където се заделят динамично данни по време на
изпълнение на програмата.
Какво съдържа Heаp? В купчината се съхраняват данни, които могат да бъдат заделяни и
освобождавани по желание на програмата. Тук се съхраняват обекти с по-дълъг живот, като
например обекти, заделени с оператора new в много езици.
Характеристики:
Заделянето и освобождаването на памет в купчината не следва строго LIFO принципа и се нарича
"динамично управление на паметта".
Служи за съхранение на данни с по-продължителен живот, като например обекти, които трябва да
останат в паметта след приключване на функцията, в която са създадени.
9. Garbage collection