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

Java Syntax: короткий вступ до мови програмування

Стаття з групи Java-університет

Що таке синтакс 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

Є кілька основних правил синтаксису, яких варто дотримуватися під час програмування на 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 дозволяє обрати Enum під час створення. Java Syntax: короткий вступ до мови програмування - 2

Оголошення змінних у 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-ifv;
  • enum: використовується для визначення фіксованого набору констант;
  • extends: ключове слово extends в Java потрібне, щоб вказати те що, що клас розширює інший клас (є дочірнім класом іншого класу);
  • final: ключове слово, щоб позначити, що змінна є константою;
  • finally: позначає блок коду, який виконуватиметься незалежно від того, обробляється виняток чи ні;
  • float: змінна, яка містить 4-байтове число з плаваючою точкою;
  • for: ключове слово для початку циклу. Використовується для повторюваного виконання набору інструкцій, в разі якщо деякі умови є true.
  • if: ключове слово для перевірки умов. Виконує блок, якщо умова є істинною;
  • implements: ключове слово реалізації інтерфейсу;
  • import: ключове слово import Java використовується для імпорту пакета, класу або інтерфейсу;
  • instanceof: перевіряє, чи є об'єкт екземпляром певного класу чи інтерфейсу;
  • int: змінна, яка може містити ціле число 4-байтове зі знаком;
  • interface: ключове слово interface у Java використовується для оголошення інтерфейсу;
  • long: змінна, яка може містити 8-байтове ціле число зі знаком;
  • native: вказує на те, що метод реалізовано в нативному коді з використанням JNI (Java Native Interface);
  • new: ключове слово в Java для створення нових об'єктів;
  • package: оголошує пакет (папку) Java для файлів класів Java;
  • private: модифікатор доступу, вказує, що метод або змінна видимі лише в класі, в якому вони оголошені;
  • protected: модифікатор доступу, який вказує, що доступ до методу або змінної можна отримати всередині та ззовні пакета через дочірній клас;
  • public: модифікатор доступу вказує, що елемент доступний будь-де;
  • return: повертає результат виконання методу;
  • short: змінна, яка може містити 2-байтове ціле число зі знаком;
  • static: вказує, що змінна чи метод є класом, а не об'єктом, методом;
  • strictfp: обмежує обчислення з плаваючою точкою;
  • super: належить до об'єкта батьківського класу;
  • switch: обирає блок коду (або кілька з них) для виконання;
  • synchronized: інший вид модифікатора. Він показує, що метод може бути доступний лише одному потоку за один раз;
  • this: посилається на поточний об'єкт у методі чи конструкторі;
  • throw: використовується для явного створення винятку;
  • throws: оголошує виняток;
  • transient: 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!
Коментарі (1)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Max Ma Рівень 29
16 квітня 2023
Дякую за статтю українською!