JavaRush /Java блог /Random /Java Syntax: краткое введение в язык программирования
Автор
Василий Малик
Senior Java-разработчик в CodeGym

Java Syntax: краткое введение в язык программирования

Статья из группы Random

Что такое синтаксис Java (Java Syntax)?

Синтаксис Java (Java Syntax) — это основа языка, все основные правила, команды, а также конструкции для написания программ, которые «понимают» компилятор и компьютер. У каждого языка программирования есть собственный синтаксис, так же как у естественных языков, которыми мы пользуемся для общения друг с другом. Эта статья посвящена базовому синтаксису языка программирования Java и нацелена на тех, кто изучает Java, начинающих разработчиков или тех, кто знает другой язык программирования. Некоторые аспекты могут быть непонятны новичкам. Если такое случится с вами, рекомендуем пропустить сложные части и сосредоточиться на примерах. Как и во всем остальном, язык программирования лучше изучать циклично, постепенно приходя к более глубокому пониманию тех или иных понятий. Каждая Java-программа — это по сути набор объектов, которые включают данные (переменные) и поведение (функции или методы). Также программа Java представляет собой класс или несколько классов. Объект — это экземпляр класса. Класс — это модель например, формочки для печенья, а объекты — печенье. Или, скажем, класс — это абстрактный «Java-программист», а объект — «Java-программист Иван» или «Java-программист Алиса».

Объекты в Java

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

Класс в Java

Класс — это модель, шаблон или чертеж объекта. Он описывает поведение и устанавливает, что поддерживает объект его типа. Например, у класса Cat есть собственное имя, цвет, владелец; у кота также есть поведение: прием пищи, мурлыканье, ходьба, сон.

Методы в Java

Методы предназначены для описания логики, работы с данными и выполнения всех действий. Каждый метод определяет поведение. Класс может содержать множество методов. Например, мы можем написать метод sleep() для класса Cat (чтобы спать) или purr() для мурлыканья.

Переменные экземпляра в Java

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

Простая программа на Java: Hello, Java!

Вот простейшая программа на Java:

class HelloJava {
   public static void main(String[] args) {
       System.out.println("Hello, Java!");
   }
}
Эта программа выводит в консоли строку «Hello, Java!». Я рекомендую вам установить JDK и IntelliJ IDEA и попробовать написать код из этого примера. Или для первого раза просто найдите онлайн-IDE, чтобы сделать это. Теперь разберем эту программу построчно, но опустим некоторые детали, которые не нужны новичку.

class HelloJava
Каждая программа на Java представляет собой класс или, чаще всего, множество классов. Строка class HelloJava означает, что мы создаем новый класс под названием HelloJava. Как сказано выше, класс — это своего рода шаблон или план, он описывает поведение и состояния объектов класса. Это может быть сложно для начинающих программистов, но не волнуйтесь: вы изучите эту концепцию чуть позже. На данный момент класс HelloJava — это лишь начало вашей программы. Возможно, вы заметили фигурную скобку { в той же строке и по всему тексту. Пара фигурных скобок {} обозначает блок, группу программируемых формулировок, которые рассматриваются как единое целое. Где { означает начало блока, а } его конец. Блоки могут быть вложены друг в друга, или они могут идти последовательно. В приведенной выше программе есть два вложенных блока. Внешний содержит тело класса Hello. Внутренний блок содержит тело метода main().

public static void main (String args []) {
Вот начало основного (main) метода. Метод — это поведение или последовательность команд, которая позволяет выполнять операцию в программе. Например, умножить два числа или вывести строку. Иными словами, метод — это функция. В некоторых других языках программирования методы часто называют «функциями». Методы, как и все элементы программы на Java, расположены внутри класса. Каждый класс может иметь один, несколько методов или быть вообще без них. Java Syntax: краткое введение в язык программирования - 1public — модификатор доступа. К переменной, методу или классу, отмеченным модификатором public, можно получить доступ из любой точки программы. В Java их четыре: публичный, приватный, защищенный и default — по умолчанию (пустой). О них поговорим чуть позже. Для начала лучше сделать все ваши методы публичными. void — возвращаемый тип метода. Void значит, что он не возвращает никакого значения. main представляет начальную точку программы. Это название метода. String[] args — это main (основной) аргумент метода. Пока достаточно знать, что почти у каждой Java-программы есть метод main: он запускает программу и объявляется как public static void main(String[] args). Static методы (статические) предназначены для работы с классом. Методы, использующие ключевое слово static в своем объявлении, могут напрямую работать только с локальными и статическими переменными.

System.out.println("Hello, Java!");
Формально эта строка выполняет метод println объекта out. Объект out объявляется в классе OutputStream и статически инициализируется в классе System. Однако это может показаться немного сложным для новичка. Если вы только учитесь, достаточно знать, что эта строка выводит слова «Hello, Java!» в консоли. Поэтому, если вы запустите программу в своей среде разработки (IDE), вы получите такой вывод: Java Syntax: краткое введение в язык программирования - 2

Основные правила синтаксиса Java

Есть несколько основных правил синтаксиса, которым нужно следовать при программировании на Java:
  • Имя файла должно совпадать с именем класса;
  • Чаще всего каждый класс находится в отдельном файле с расширением .java. Файлы классов обычно сгруппированы в папки. Эти папки называются пакетами;
  • символы чувствительны к регистру. String не равно string;
  • Начало обработки Java-программы всегда начинается в main методе: public static void main (String [] args). Метод main() является обязательной частью любой Java-программы;
  • Метод (процедура, функция) представляет собой последовательность команд. Методы определяют поведение над объектом;
  • Порядок методов в файле программы не имеет значения;
  • Имейте в виду, что первая буква имени класса должна быть в верхнем регистре. Если вы используете несколько слов, указывайте прописные буквы для первой буквы каждого слова (например, «MyFirstJavaClass»);
  • Имена всех методов в синтаксисе Java начинаются со строчной буквы. При использовании нескольких слов последующие буквы пишутся заглавными (public void myFirstMethodName ());
  • Файлы сохраняются с именем класса и расширением .java (MyFirstJavaClass.java);
  • В синтаксисе Java есть разделители {...}, которые обозначают блок кода и новую область кода;
  • каждый оператор кода должен заканчиваться точкой с запятой.

Переменные и типы данных Java

Переменные — это специальные сущности, используемые для хранения данных. Любых данных. В Java все данные хранятся в переменных. Можно сказать, что переменная — это зарезервированное место или ящик для размещения переменной. У каждой переменной есть свой тип данных, имя (идентификатор) и значение. Типы данных могут быть примитивными, непримитивными или ссылочными. Примитивные типы данных могут быть:
  • Целыми числами: byte, short, int, long
  • Дробными числами: float и double
  • Логическими значениями: boolean
  • Символьными значениями (для представления букв и цифр): char

Пример переменных в Java:


int s;
s = 5;
char myChar = ‘a’;
В этом коде мы создали целочисленную переменную s (пустой контейнер), а затем поместили в нее значение 5. Та же история с переменной myChar. Мы создали её с типом данных char и определили её как букву a. В данном случае мы создали переменную и одновременно присвоили ей значение. Синтаксис Java позволяет вам сделать это таким образом. Ссылочные типы — это некоторые объекты, которые содержат ссылки на значения или другие объекты. Они также могут содержать ссылку на ноль (null). Null — это специальное значение, которое обозначает, что значение отсутствует. Среди ссылочных типов есть String, Arrays и любой Class, который вы хотите. Если у вас есть класс скрипки (Violin), вы можете создать переменную этого класса. Пример переменных ссылочного типа в Java:

String s = “my words”;
Violin myViolin;
Вы узнаете о них больше попозже. Запомните, что непримитивные типы переменных начинаются с заглавных букв, а примитивные — со строчных. Пример:

int i = 25;
String s = “Hello, Java!”;

Массивы в Java

Массивы — это объекты, в которых хранится несколько переменных одного типа. Однако сам массив является объектом в куче. Мы рассмотрим, как объявлять, конструировать и инициализировать в следующих главах. Пример массива:

int[] myArray = {1,7,5};
Здесь у нас есть массив, содержащий три целых числа (1,7 и 5).

Перечисления в Java (Java Enums)

В дополнение к примитивным типам данных в Java есть такой тип, как enum, или enumeration (перечисление). Перечисления представляют собой набор логически связанных констант. Перечисление объявляется с помощью оператора enum, за которым следует имя перечисления. Затем идет список элементов перечисления, разделенных запятыми:

enum DayOfWeek {
     MONDAY,
     TUESDAY,
     WEDNESDAY,
     THURSDAY,
     FRIDAY,
     SATURDAY,
     SUNDAY
}
Перечисление фактически представляет собой новый тип, поэтому мы можем определить переменную этого типа и использовать ее. Вот пример использования перечисления.

Пример перечисления в Java (Java Enum)


public class MyNum{
    public static void main(String[] args) {

        Day myDay = DayOfWeek.FRIDAY;
        System.out.println(myDay);	//напечатать день из enum
}
}
enum DayOfWeek{

    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
}
Если вы запустите программу, в консоли выыведется FRIDAY. Вы можете поместить код классов Enum и MyNum в один файл, но лучше создать два отдельных файла: один для класса MyNum и один для перечисления дней недели (Day). IntelliJ IDEA позволяет выбрать перечисление при создании. Java Syntax: краткое введение в язык программирования - 3

Объявление переменных в Java

На самом деле мы объявили некоторые переменные выше и даже идентифицировали их. Объявление — это процесс выделения памяти для переменной определенного типа и присвоения ей имени. Что-то вроде такого:

int i;
boolean boo;
Мы также можем объявить инициализацию переменной с помощью оператора присваивания (=). Это означает, что мы помещаем определенное значение в выделенную память. Мы можем сделать это прямо в момент объявления или позже.

Пример объявления переменной


String str;
int i = 5;
Str = “here is my string”;
Если вы объявляете переменную без инициализации, она все равно получит какое-то значение по умолчанию. Для int это значение равно 0, для String или любого другого ссылочного типа это специальный идентификатор null.

Идентификаторы в Java

Идентификаторы — это просто имена компонентов Java — классов, переменных и методов. У всех компонентов Java должны быть имена.

Class Violin {
int age;
String masterName;
}
Violin — идентификатор класса. age и masterName — идентификаторы переменных. Вот некоторые правила идентификаторов Java:
  • все идентификаторы начинаются с латинской буквы (от A до Z или от a до z), символа валюты ($) или символа подчеркивания (_);
  • после первого символа у идентификаторов может быть любая комбинация символов;
  • ключевое слово Java не может быть идентификатором (о ключевых словах вы узнаете чуть позже);
  • идентификаторы чувствительны к регистру.

Примеры идентификаторов

Допустимые идентификаторы: java, $mySalary, _something Недопустимые идентификаторы: 1stPart, -one

Модификаторы в Java

Модификаторы — это специальные слова языка Java, которые вы можете использовать для изменения элементов (классов, методов, переменных). В Java есть две категории модификаторов: модификаторы доступа и другие модификаторы.

Примеры модификаторов доступа

В Java есть четыре модификатора доступа:
  • public. Открытый элемент. Доступ к нему можно получить из класса, снаружи класса, внутри и снаружи пакета;
  • К элементу с модификатором по умолчанию — default (пустым) — есть доступ только внутри пакета;
  • protected модификатор — можно получить доступ внутри и снаружи пакета через дочерний класс;
  • private — элемент доступен только внутри объявленного им класса.

Примеры других модификаторов

Других модификаторов (для классов, полей, методов, интерфейсов и так далее) — семь:
  • static
  • final
  • abstract
  • synchronized
  • transient
  • volatile
  • native

Ключевые слова в Java (Java Keywords)

Ключевые слова Java — это специальные слова для использования в Java, которые действуют как ключ к коду. Они также известны как зарезервированные слова: их нельзя использовать для идентификаторов переменных, методов, классов и т. д. Вот они:
  • abstract: ключевое слово для объявления абстрактного класса;
  • boolean: ключевое слово boolean в Java нужно для объявления переменной логического типа. Такие переменные могут быть только истинными и ложными;
  • break: ключевое слово break в Java используется, чтобы разорвать цикл или оператор switch;
  • byte: ключевое слово byte в Java нужно для объявления однобайтовой целочисленной переменной;
  • case: используется с операторами switch для маркировки блоков текста;
  • catch: используется для перехвата исключений после блока try;
  • char: ключевое слово char в Java используетсядля символьной переменной. Может содержать 16-битные символы Unicode без знака;
  • class: ключевое слово class в Java нужно для объявления класса;
  • continue: ключевое слово в Java для продолжения цикла;
  • default: ключевое слово default в Java используется, чтобы указать блок кода по умолчанию в операторе switch;
  • do: используется в конструкции цикла do-while;
  • double: ключевое слово double в Java нужно, чтобы объявить числовую переменную. Может содержать 8-байтовые числа с плавающей запятой;
  • else: можно использовать в условных операторах else-if;
  • enum: используется для определения фиксированного набора констант;
  • extends: ключевое слово extends в Java нужно для указания на то, что класс расширяет другой класс (является дочерним классом другого класса);
  • final: ключевое слово, чтобы указать, что переменная является константой;
  • finally: отмечает блок кода, который будет выполняться независимо от того, обрабатывается исключение или нет;
  • float: переменная, которая содержит 4-байтовое число с плавающей запятой;
  • for: ключевое слово для запуска цикла for. Он используется для многократного выполнения набора инструкций, пока выполняются некоторые условия;
  • if: ключевое слово для проверки условия. Он выполняет блок, если условие истинно;
  • implements: ключевое слово для реализации интерфейса;
  • import: ключевое слово import в Java используется для импорта пакета, класса или интерфейса;
  • instanceof: проверяет, является ли объект экземпляром определенного класса или интерфейса;
  • int: переменная, которая может содержать 4-байтовое целое число со знаком;
  • interface: ключевое слово interface в Java используется для объявления интерфейса;
  • long: переменная, которая может содержать 8-байтовое целое число со знаком;
  • native: указывает, что метод реализован в нативном коде с использованием JNI (Java Native Interface);
  • new: ключевое слово new используется в Java для создания новых объектов;
  • package: объявляет пакет (папку) Java для файлов классов Java;
  • private: модификатор доступа указывает, что метод или переменная могут быть видны только в классе, в котором они объявлены;
  • protected: модификатор доступа, который указывает, что доступ к методу или переменной можно получить внутри и снаружи пакета через дочерний класс;
  • public: модификатор доступа указывает, что элемент доступен в любом месте;
  • return: возвращает результат выполнения метода;
  • short: переменная, которая может содержать 2-байтовое целое число со знаком;
  • static: указывает, что переменная или метод является классом, а не объектом, методом;
  • strictfp: ограничивает вычисления с плавающей точкой;
  • super: относится к объекту родительского класса;
  • switch: выбирает блок кода (или несколько из них) для выполнения;
  • synchronized: другой видм модификатора. Он указывает, что метод может быть доступен только одному потоку за раз;
  • this: ссылается на текущий объект в методе или конструкторе;
  • throw: используется для явного создания исключения;
  • throws: объявляет исключение;
  • transient (переходный) фрагмент данных не может быть сериализован;
  • try: запускает блок кода, который проверяется на наличие исключений;
  • void: указывает, что метод не возвращает значение;
  • volatile: указывает, что переменная может изменяться асинхронно;
  • while: запускает цикл while. Повторяет часть программы несколько раз, пока условие истинно.

Комментарии в Java

Java поддерживает однострочные и многострочные комментарии. Все символы доступны внутри любого комментария и игнорируются компилятором Java. Разработчики используют их, чтобы объяснить код или вспомнить что-то. Примеры комментариев:

//однострочный комментарий
/*а вот многострочный комментарий. Как видите, в нем используются слеши и звездочки в начале и в конце.*/

public class HelloJava {
   /* эта программа создана для демонстрации комментариев в Java. Это многострочный комментарий.
   Вы можете использовать такие комментарии в любом месте вашей программы*/
   public static void main(String[] args) {
       //а вот однострочный комментарий
       String j = "Java"; //Это моя строка
       int a = 15; //Здесь у меня целое число
       System.out.println("Hello, " + j + " " + a + "!");
       int[] myArray = {1,2,5};
       System.out.println(myArray.length);
   }
}

Литералы в Java

Литералы в Java — это некие постоянные значения, присвоенные переменной. Это могут быть числа, тексты или что-то еще, представляющее значение.
  • Целочисленные литералы
  • Литералы с плавающей точкой
  • Символьные литералы
  • Строковые литералы
  • Логические литералы

Примеры литералов в Java


int i = 100; //100 – целочисленный литерал
double d = 10.2;//10.2 – литерал с плавающей точкой
char c = ‘b’; //b – символьный литерал
String myString = “Hello!”;
boolean bool = true;
Обратите внимание: null — тоже литерал.

Основные операторы в Java

Существуют различные типы операторов: Арифметические:
  • + (сложение чисел и конкатенация строк)
  • (минус или вычитание)
  • * (умножение)
  • / (деление)
  • % (модуль или остаток)
Сравнения:
  • < (меньше чем)
  • <= (меньше или равно)
  • > (больше чем)
  • >= (больше или равно)
  • == (равно)
  • != (Не равно)
Логические:
  • && (AND)
  • || (OR)
  • ! (NOT)
  • ^ (XOR)
Мы уже узнали о типах данных, переменных, методах и операторах. Давайте рассмотрим простой пример кода, но немного более сложный, чем самая первая программа на Java. Давайте создадим класс под названием NumberOperations.

public class NumbersOperations {
   int a;
   int b;
   public static int add(int a,int b){
       return a+b;
   }
   public static int sub (int a, int b){
       return a-b;
   }
   public static double div (double a, int b){
       return a/b;
   }
}
Здесь у нас есть класс с древовидными методами для работы с двумя числами. Вы можете попробовать написать четвертый метод int mul (int a, int b) для умножения двух чисел в этой программе. Давайте также создадим класс для демонстрации работы NumberOprations:

public class NumberOperationsDemo {
   public static void main(String[] args) {
       int c = NumbersOperations.add(4,5);
       System.out.println(c);
       double d = NumbersOperations.div(1,2);
       System.out.println(d);
   }
}
Если вы запустите NumberOperationsDemo, вы получите такой вывод:
9 0.5

Итоги

Это лишь основы языка Java, и поначалу многое может сбить с толку. Вам понадобится много практики программирования, чтобы понять, что к чему. И это самый лучший способ выучить язык программирования — благодаря практике. Начните программировать прямо сейчас: попробуйте пройти первый квест курса JavaRush. Удачи в изучении Java!
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Нейросеть Уровень 41
11 апреля 2024
У вас перепутано немного в примере enum

Day myDay = DayOfWeek.FRIDAY;
Так нельзя положить. Нужно либо тип переменной изменить на DayOfWeek, либо enum переименовать в Day. И судя по примеру далее второе
Колян Мамаев Уровень 14
23 июля 2023
Все согласны с утверждением: % (модуль или остаток) ??? Я считаю что нельзя писать что это модуль или остаток, так как это разные вещи. Модуль числа, если просто, то это смена знака "-" на "+". Так же есть такая фраза как "деление по модулю". В данном случае применяется модуль для числа на которое делим. Пример: 10%3 = 1 10%-3 = 1 Думаю что лучше просто написать "остаток от деление" или "деление по модулю".
Francesca Уровень 27 Expert
16 апреля 2023
Это мы берем в закладочки🧐