Как было сказано в одной из предыдущих статей, в названиях класса, метода, переменной и т.д. могут использоваться любые словосочетания, кроме ключевых слов и слов, начинающихся с цифр и знаков подчеркивания.
Ключевые слова java
Ниже приведен список ключевых слов, зарезервированных в java. Некоторым из них дадим расшифровку.
boolean, byte, int, long, short, double, float, char.
Все эти ключевые слова относятся к типам данных, о которых поговорим чуть позже.
if else, switch case – операторы выбора
while do, for each -операторы циклов.
abstract -что абстрактное, не ясно выраженное. Абстрактным может быть класс или метод.
catch, try, finally, trow, trows –операторы для обработки исключений.
assert- позволяет проверять отдельные участки кода на наличие ошибок.
class- применяется для создания классов в java.
default - используется в интерфейсах для методов по умолчанию.
enum - используется в перечислении.
extends – наследование, наследование классов.
final – используется в переменных, переменная, которую уже нельзя изменить, по сути, которая является константой. Также может использоваться в определении класса или метода. В первом случае, класс не может наследоваться, а во втором, метод не может переопределяться.
implemens - при помощи его в классах реализуются интерфейсы. Вообще-то, интерфейс в java очень интересная вещь. Пока не столкнёшься с «тоннами» написанного кода, не осознаешь смысл фразы «один интерфейс – множество методов».
import - с помощью этого слова подключаются пакеты java к вашей программе.
interface - создание интерфейса.
native – используется для объявления методов, код которых написан на другом языке программирования. Реализация данного ключевого слова оправдана, если в java нет реализации той или иной функции, либо достигается значительная производительность.
new - с помощью этого слова создаются объекты.
package - создание пакетов.
private, protected, public – модификаторы доступа к переменной, методу или классу.
break, continue, return, goto -операторы перехода. Последний оператор в java не используется, вместо него применяется break. Такая же ситуация с ключевым словом const, которое также не используется. Если они не используются, то зачем они зарезервированы? У меня нет ответа.
static – статическим может быть переменная или метод. Это означает, что они могут быть вызваны без создания объекта. Примером может быть метод main, с которого начинается выполнение программы еще до создания всяких объектов.
super – с помощью этого слова вызывается конструктор, метод или переменная суперкласса.
strictfp – используется для одинаковой точности при вычислении вещественных чисел на разных платформах.
synhronized – используется для синхронизации потоков.
this - используется для ссылки на объект текущего класса. Можно также с помощью этого ключевого слова обращаться к переменным класса, которые скрыты переменными метода или конструктора.
transient – модификатор, указывающий, что данные поля не сериализуются.
void - употребляется в определение метода, если он не возвращает никаких значений.
volatile – используется для корректной записи и чтении данных в многопоточном программировании.
Понятие типа данных
В java типы переменных делятся на две категории: примитивные типы и ссылочные типы. Примитивные типы включают целочисленные числа, числа с плавающей точкой, символы и логические значения. Ссылочные типы включают объекты, массивы и интерфейсы. Хотя массив и интерфейс тот же объект. Выбор типа переменной зависит от того, какие данные мы хотим хранить и как планируем использовать. Примитивные типы не требуют создания объектов, хотя в java есть возможность упаковать их в объекты. Безобъектная модель примитивных типов связана с увеличением производительности. Что относится к типам данных:
целочисленный типы – long, int, short, byte;
с плавающей точкой – float, double;
символьные – char;
логические – boolean;
Если предположить, что переменные - это кирпичики на которых держится программа или строится, то тип данных - это вид строительных кирпичей: печные, облицовочные, силикатные или тротуарные.
Чтобы привести один тип к другому, используют выражение:
переменная=(тип_к_которому_нужно_привести) переменная;
справедливо:
Результатом приведения будет b=100. А что если мы захотим привести целочисленное значение, которое не входит в диапазон допустимых значений byte (от -128 до 127), например, a= 300? В этом случае часть значения отсекается и в переменную записывается b только 44. Каким образом это происходит? В литературе по этому поводу сказано «...значение уменьшается до результата деления по модулю на 256...). Хорошо, а как насчет b=400? Рекомендую поиграть с числами, результаты будут удивлять. Думаю, что отсечение чисел происходит по-другому....
Переменные
Переходим к теме, на которой хотелось остановиться более подробно. Смысл переменной заключается в хранении значений. В java область действия переменных лежит между фигурными скобками ({}). По сути существуют две области. Одна - это область класса, другая – область метода. Так вот, переменные, находящиеся в методе не видны коду из класса, при этом из самого метода переменные класса видны. Таким образом, переменные во внутренней области не видны из внешней, а из внутренней «просматривается» вся «внешка». Это хорошо видно из следующей диаграммы.
Если посмотреть на наши кирпичики, класс-дом и книга-метод, то кирпичи, находящиеся в доме, хорошо видны и могут использоваться книгой. А к тем кирпичам, которые используются в книге, доступ из (извне) дома закрыт. Как-то так, может это и не лучшее сравнение).
Когда наш код защищен от изменения извне это и называется инкапсуляцией.
Следующий момент - объявление переменных. Важно запомнить, что переменная всегда объявляется до ее использования. Действительно, мы же не можем построить русскую печь, а только потом приобрести красный кирпич.
А сколько времени может жить переменная? Век ее недолгий. Переменная создается при вхождении в область ее действия, которая располагается между фигурными скобками, и умирает при выходе из нее. В книге Герберта Шилдта «Java 8. Полное руководство» приводится пример программы, в которой демонстрируется время жизни переменной. Однако в ней я не смог рассмотреть ту самую демонстрацию. Цитата: «Как видите, переменная y повторно инициализируется значением -1 при каждом вхождении во внутренний цикл for. И хотя переменной y впоследствии присваивается значение 100, тем не менее оно теряется». Спорно, так как я могу утверждать, что оно не теряется, а просто перезаписывается. Просто увидеть это в нижеприведённом примере нельзя. Или я этого не вижу?
На мой взгляд, концепция жизни переменной логична, так как если бы переменная не уничтожалась на выходе из области ее действия, то создавались бы множество копий переменных. Что, в свою очередь, отразилось бы на производительности программы.
В этой статье мы рассмотрели основные ключевые слова, используемые в java, типы данных и переменные. Кстати, результат логических операций: true и false, можно также отнести к ключевым словам.
Подписывайтесь на канал и в следующей статье мы рассмотрим операции, которые применяются в java.