Современные тенденции сделали профессию программиста крайне популярной. Многие отдают предпочтение написанию кодов на Джава. Этот язык не слишком трудно освоиться, особенно если пользователь уже был знаком с машинными кодификациями. Соответствующая «лексика» предусматривает ряд объектов и особенностей. Весьма полезными будут аннотации Java. Но перед тем, как пользоваться подобным элементом, каждый должен разобраться с некоторыми особенностями языкового кода. Без этого в полной мере понять, о чем зайдет речь в статье, не получится при всем желании.

Все о Java для новичков: методы, классы, аннотации

Определение

Java – язык программирования, который является у программеров универсальным. Обладает строгой типизацией. Относится к объектно-ориентированным. Используется повсеместно. А именно, в:

  • мобильных разработках;
  • научных приложениях;
  • суперкомпьютерах;
  • компьютерном контенте;
  • игровых консолях.

Служит основой большинства типов сетевых утилит. Гибкий, простой в освоении и кроссплатформенный. Имеет различные объекты. Особое внимание уделяют так называемым методам и аннотациям. С ними должен быть знаком даже начинающий разработчик.

Основная терминология

В процессе изучения Java и различных операций в процессе работы над созданием кодов, важно различать ключевые составляющие языка. Они используются программерами постоянно. Далее будут представлены основополагающие, необходимые каждому разработчику на Джаве.

Переменные

Переменные – основные объекты, с которыми предстоит работать пользователю. Это – некий «контейнер», в котором хранятся значения данных, используемых при выполнении тех или иных операций. Минимальная неделимая составляющая приложений.

Бывают:

  • ссылочными – используются для объемной «тяжелой» информации;
  • примитивными – для небольшого объема сведений.

Для примера стоит рассмотреть следующую запись:

Все о Java для новичков: методы, классы, аннотации

В ней:

  • Int – тип переменной (ее объявление);
  • x – имя;
  • 9 – значение.

Переменные фигурируют во всем написанном коде. Без этой составляющей справиться с поставленными задачами (какими бы они ни были) не получится.

Классы

Класс – это не метод и не аннотация, но тоже весьма важный элемент в Джаве. Представлен шаблонной конструкцией, позволяющей описывать в приложении объекты, а также его свойства и поведение.

Имеет:

  • имя;
  • ключевое слово – class;
  • фигурные скобки, в которых описывается элемент.

Параметрами класса называют переменную, описываемую свойство задействованного объекта. Для примера стоит рассмотреть следующую кодификацию:

Class Pet {
Int weight;
String name;
String type;
}

Здесь weight, name и type – это поля класса Pet.

Виды классов

Джава предусматривает несколько видов классов внутри других:

  • вложенные внутренние – нестатические классы внутри внешнего (public class);
  • вложенные статистические;
  • локальные – расположенные внутри методов;
  • анонимные – создаются на ходу.

Внутренние нестатические классы имеют вид:

Все о Java для новичков: методы, классы, аннотации

Статические внутри внешнего:

Все о Java для новичков: методы, классы, аннотации

Локальные:

Все о Java для новичков: методы, классы, аннотации

Анонимные:

Все о Java для новичков: методы, классы, аннотации

Внимание: в записи public  static void/public void – неистанцируемый класс-плейсхолдер, в котором содержится ссылка на класс-объект для ключевого слова Void.

Методы

Метод – операция, которая расположена внутри тех или иных свойств. Это действия, осуществляемые над различными элементами в пределах написанного программного код. Некий блок, объявленный внутри класса. Содержит последовательность шагов, предпринимаемых для выполнения поставленных задач.

Отличительной особенностью метода является возможность его многократного использования. Представлена функцией. Чем-то, что способен выполнять выбранный класс.

Аргументы – это то, что требуется передать в метод при вызове оного. Количество параметров здесь не ограничено. Могут указываться через запятую или вовсе не прописываться.

Синтаксис

Для того, чтобы понять, как работает команда на Джаве, стоит разобраться в функционировании каждого элемента System.out.println(). Эта «манипуляция» позволяет осуществлять вывод поля данных любого типа. Имеет прямое отношение к методам.

Здесь:

  1. System – class, к которому обращается команда при выполнении.
  2. Out – переменная, предопределенная Output. Принимает поток. Именно сюда обращается System.
  3. Println() – экземпляр Outputstream, который называется PrintStream. Имеет инструкции, которые позволяют производить обработку данных, отображаемых на дисплее. Сюда будет ссылаться переменная out. Допускается передача аргументов.

Методы способны отвечать за передачу значений переменных любого типа. Для реализации поставленной задачи достаточно ввести без кавычек названием «считываемого» элемента:

Все о Java для новичков: методы, классы, аннотации

Вот передача значения нескольких переменных и различных действий над ними вместе со строчкой:

Все о Java для новичков: методы, классы, аннотации

Внимание: методы, как и весь программный код, может записываться в сокращенном виде. Для этого задействованы специальные «ключевики».

Рефлексия

Рефлексия – это некий механизм исследования информации о приложении во время ее выполнения. Позволяет получать и анализировать сведения о полях, методах, классовых конструкторах.

Внимание: время выполнения программы – промежуток, затрачиваемый на выполнение кода созданной утилиты. То, сколько обрабатывается информация до выдачи непосредственного результата.

Рефлексия в Java отвечает за обработку типов, отсутствующих при компиляции, но возникшие в процессе исполнения утилиты. Используется для исправления ошибок. Помогает писать корректные динамические коды.

Основные возможности соответствующей операции:

  • создание экземпляров класса при условии, что его имя неизвестно до непосредственного выполнения кода;
  • получение данных о модификаторах классов, полях, методах, суперклассах (пример – lang), конструкторах и константах;
  • определение и распознавание классов объектов;
  • выяснение того, какие методы относятся к задействованным интерфейсам;
  • вызов метода объекта по его имени;
  • установка и получение значений полей объекта по именам.

Новички часто путают рефлексию с интроспекцией. Так называют проверку кода и возможность видеть типы объектов во время выполнения. Посредством рефлексии можно вносить корректировки при выполнении утилиты. Для реализации поставленной задачи используется Java Reflection API.

В обычном программировании при наличии доступа к классам и интерфейсам не используется, так как:

  • обладает низкой производительностью;
  • имеет ограничение системы безопасности;
  • нередко приводит к нарушению безопасности утилиты.

А еще кодификации такого типа трудно поддерживать. Они тяжело читаются и отлаживаются. Являются менее гибкими, чем «обычные» коды. И здесь немаловажным элементом становятся аннотации.

Внимание: рефлексия в Java используется редко, новичкам она не так важна и необходима.

Аннотации

Отдельное внимание стоит уделить таким элементам, как аннотации. Они, в отличие от рефлексии в Java, нужны всем программерам. Используются при обычном и рефлексивном написании кодификаций.

Это – некие пометки, посредством которых разработчики указывают компилятору и средствам разработки что делать с теми или иными участками кода кроме исполнения утилиты. Аннотированию подлежат:

  • пакеты;
  • классы;
  • параметры;
  • переменные.

Допускается как написание собственных аннотаций, так и использование уже встроенных в Джаву вариаций.

Начинается со знака «@» («собака»). Вот пример стандартной аннотации — @Override. Отвечает за переопределение.

Все о Java для новичков: методы, классы, аннотации

Так, если в имени используемого метода AnotherClass встретится ошибка (опечатка), компилятор примет во внимание аннотацию и покажет сообщение об ошибке. Без этой «операции» произошло бы создание нового метода дополнительно к method из SomeClass.

Внимание: методы в Java тоже могут аннотироваться. Это значительно облегчает поставленные перед программером задачи. Пример рассмотрен выше.

Зачем создаются

Аннотации в Java используются для:

  • создания конфигурационных XML-документов и дополнительных кодов на основе исходных;
  • документации приложений и баз данных совместно с их разработкой;
  • проектирования классов, не используя интерфейсы маркерного типа;
  • быстрого подключения зависимости к составляющим приложения;
  • выявления ошибок, который компиляторы при обработке кодов не замечают;
  • решения иных задач, которые задумал разработчик.

Стоит обратить внимание на маркерные интерфейсы. Если у интерфейса отсутствуют методы, они работают как некие маркеры. То есть, говорят, что объекты задействованных классов должны чем-то выделяться, восприниматься иначе. Маркерные интерфейсы могут называться тегами. Это элементы, которые добавляют общий тег ко всем унаследованным классам, а также объединяющие оные в одну категорию.

Аннотации впервые появились в Джаве EE 5. Тогда они являлись инструментарием, облегчающим работу с большим количеством материала. Разработка крупных веб-интерфейсов и клиентского ПО значительно облегчалась.

Принципы обработки

Компиляторы при помощи аннотаций способны задействовать спецобработчики, которые генерируют новые кодификации и файлы конфигурации. К обработчикам относят библиотеки и софт, который можно копировать от посторонних авторов, после чего прикреплять к собственным проектам в задействованной изначально среде. Метод подключения напрямую зависит от системы сборки или IDE.

Парсинг аннотаций осуществляется циклическим образом. Компилятор сначала ищет их в пользовательском машинном коде, затем выбирает подходящие обработчики. Если вызванный «объект» на основе аннотаций создает новые документы, происходит следующий этап. В качестве исходного будет служить сгенерированный новый код. Действия происходят до тех пор, пока система не создаст все необходимые «электронные документы».

Как быстро создать первую аннотацию в Java

Чтобы лучше понять рассматриваемую тему, стоит попытаться составить собственный «комментарий». Существует веб-сервис, поддерживающий несколько версий одного и того же функционала, задействованного для соблюдения совместимостей. Также имеется обработчик аннотаций. Он дает возможность компилятору выбирать необходимые версии. Сведения об создателях и разработках будут в аннотациях:

Все о Java для новичков: методы, классы, аннотации

Здесь получим дополнительные два атрибута, имеющие вид методов. Но при их объявлении не используется оператор throws, а также не назначаются параметры.

В качестве значений служат:

  • иные аннотации;
  • массивы;
  • всевозможные class или обращения к ним;
  • примитивные типы Джава.

В поле author указаны значения по умолчанию. Атрибуты с дефолтной информацией можно пропускать:

Все о Java для новичков: методы, классы, аннотации

А чтобы аннотация использовалась исключительно по назначению, ее стоит объявить и указать, при каких обстоятельствах и где конкретно она должна функционировать:

Все о Java для новичков: методы, классы, аннотации

Теперь остается только ассоциировать аннотацию с нужным class и осуществить запуск приложения.

Базы данных и «комментарии»

А вот ситуация, когда требуется несколько баз данных свести в одну. В этом случае:

  • сравниваются поля на поиск одинаковых элементов;
  • устраняются дубли;
  • вносится «недостающая» информация из каждого источника (так, чтобы была добавлена все сведения без копий).

Дополнительно могут возникать «сторонние» задачи. Что-то – отформатировать, что-то – проигнорировать. В итоге – выдать xls-отчет.

В данном случае аннотации из Java окажутся незаменимы. С их помощью создаются методы обработки каждого поля. А конфигурация получит совершенно «прозрачный» вид. Исходная кодификация получит следующее представление:

// аннотация применяется на уровне полей
@Target(ElementType.FIELD)
// используется при выполнении приложения
@Retention(RetentionPolicy.RUNTIME)

public @interface FieldInspector { //создание «комментария» и присваивание имени
// Выбор необходимости сравнения источников. По умолчанию — да.
boolean compareSources() default true;

/* Получаем формат значения в отчёте, а если не получаем — подставляем формат по умолчанию — native. */
СhooseTheFormat displayFormat() default СhooseTheFormat.NATIVE;

// Получаем ID текущего поля для сопоставления в нескольких базах
int id();

// Уточняем, какое имя использовать для поля в таблице.
String field_name() default "";

// Какие источники сравнивать  —  формируем список.
TheSource[] sourcesToCompare() default {};
}

Далее происходит ассоциация аннотации с полем. Пример – в БД находятся книжки:

Все о Java для новичков: методы, классы, аннотации

Теперь по умолчанию запускается сверка со всеми БД. Но не у всех книг есть сюжет. Тогда задать источники поиска требуется вручную:

Все о Java для новичков: методы, классы, аннотации

Имеется поле «Примечания», которое не подлежит сверке. Для их хранения поставим аннотацию:

Все о Java для новичков: методы, классы, аннотации

Чтобы правила обработки выбирались от значения поля, стоит связать их с class-обработчика. Он будет выбирать, как действовать. Поможет аннотация:

Все о Java для новичков: методы, классы, аннотации

Можно проверить принцип работы описанного «приложения». Пусть сравнению не подлежат книги, поступившие до 1990 года. Соответствующие материалы хранились в одной базе:

Все о Java для новичков: методы, классы, аннотации

Теперь можно доверить конкретному пользовательскому class’у реагировать на значения года поступления до 1990. Только аннотации в программировании являются статистическими. Разработчик будет работать с тем значением, которое получил изначально. Интерактив с динамической корректировкой значений юзером тут не получится.

О комментариях

Изучая аннотации, важно не запутаться. Некоторые пользователи, особенно начинающие, путают их с так называемыми комментариями. Все – из-за того, что в русском языке соответствующие термины служат синонимами.

Комментарием называют «подсказки», которые разработчик оставляет для самого себя и тех, кто будет изучать код. Это – маркеры-указатели. Пишутся через // и служат своеобразной документацией.

Все о Java для новичков: методы, классы, аннотации