Автор: Георги Георгиев, Senior Java разработчик в DataArt
Java е обектно-ориентиран език за програмиране. Всичко в Java е свързано с класове, обекти, атрибути, методи, анотации и примитивни типове. Терминологията, свързана с Java, е доста всеобхватна и се обогатява с развитието на самия програмен език. В тази статия ви представям някои от основните понятия, които биха били от полза на всеки начинаещ програмист, който има желание да се развива в областта на Java.
Java Class
Класът играе ролята на шаблон за създаване на обекти. Създаването на обект се осъществява чрез „извикване“ на конструктора на класа. Този процес е известен като инстанциране, а създаденият обект е инстанция на съответния клас. Класът съдържа: конструктор, методи, атрибути, също така може да има и подкласове (вложени класове).
Java Object
Обектите в Java се създават чрез инстанциране на даден клас. Чрез „извикване“ на конструктора на даден клас се създава нов обект от съответния клас. Обектите се характеризират със състояние, поведение и идентичност.
Class Instance
Инстанцията на даден клас е обект, а процесът за създаване на обекти се нарича инстанциране. Инстанцирането е известно още като деклариране на обект.
Constructor
Конструкторът се използва за инициализация на нови обекти. При извикването на конструктора се заделя памет за дадения обект и се задава неговото началното състояние.
Method
Клас методите са част от body-то на класа и изпълняват определена задача. Методите са с цел да се използва многократно дадена функционалност, без да е необходимо тя да се пренаписва.
Instance Method
Този тип метод е с цел да се използва повторно код, който променя състоянието на обекта. За да се използва този тип метод, е необходимо обектът предварително да се инстанцира.
Class Method
Този тип метод е с цел да се да се използва повторно код, който не променя състоянието на обекта (за разлика от Instance Method). За да се използва този тип метод, не е необходимо обектът предварително да се инстанцира.
Java Static Class
Характерното за статичните класове е, че те не могат да се инстанцират. Респективно – нямат конструктор.
Abstract Java Class
Характерното за абстрактните класове е, че те не могат да се инстанцират. Единствено могат да се наследяват.
Final Java Class
Характерното за финалните класове е, че те не могат да се наследяват, a могат единствено да се инстанцират.
Java Anonymous Class
Характерното за анонимния клас е, че той няма име. За разлика от обикновените класове, този клас се дефинира в друг клас.

Java Singleton Class
Характерното за този клас е, че той може да има само една инстанция.
Java Inner Class
Характерното за този клас е, че той е вложен клас в друг клас.
Java POJO Class
POJO (Plain Old Java Object) класът се характеризира с това, че съдържа само полета, на които могат да се присвоява и получава стойност посредством методи. Целта на този клас е да пренася данни, но не и логика.
Java Еnums
Този тип данни представлява константно множество от възможни стойности.
Java Exceptions
Изключенията в Java са неочаквани събития в поведението на програмата. В Java програмите можем да задаваме кои събития да са неочаквани, което да доведе до неочакван край на изпълнението на програмата.
Primitive Data Type
Примитивните типове в Java са boolean, char, int, short, byte, long, float, and double. Java е стриктно типизиран език за програмиране и поради тази причина променливите в него са от определен тип. Както обектите са от определен клас, така и променливите са от определен тип.
Допълнителни термини, използвани в обектно-ориентираното програмиране:
Abstraction
Абстракцията е характеристика на обектно-ориентираното програмиране и се отнася както за класове, така и за методи. Целта на абстракцията е да се създаде само дефиниция на класа или метода, без да се дефинира тяхното тяло (body). Абстрактните класове не могат да се инстанцират.
Encapsulation
Целта на енкапсулацията е даден обект да се представи като „капсула“ и комуникацията и управлението на тази капсула да се извършва чрез определени входни точки.
Inheritance
Наследяването се отнася за клас, чрез който може да се създаде нов клас, който „наследява“ всички методи, атрибути и конструктори от предшественика си.
Polymorphism
Полиморфизмът е определено свойство на един обект да бъде представен по повече от един начин. Полиморфизмът има две форми: статичен и динамичен.