Структура Java-застосунку

Перш ніж наводити приклади простих програм, написаних мовою Java, слід зробити одне невеличке зауваження. Java - об’єктно-орієнтована мова програмування, однак, прості завдання можна вирішувати й з використанням процедурного підходу. Оскільки Java має С-подібний синтаксис, ви можете створити клас з методом main, який:

  • містить логіку виконання програми
  • є точкою входу для віртуальної машини Java (JVM)
  • викликає та координує виконання інших методів классу

main

До речі, таких виконуваних файлів може бути кілька. На початку нашого курсу ми іноді будемо використовувати процедурний підхід, однак, як тільки розглянемо все, що нам потрібно для переходу до об’єктно-орієнтованого програмування, - одразу ж перекваліфікуємось!

Hello, world!

Не будемо порушувати добру традицію у відповідності до якої, при вивченні нової мови програмування, першою програмою цією мовою має стати програма, яка вітається зі світом. Тож не будемо зволікати - у Java така програма буде виглядати так:

public class TestGreeting {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

Як бачимо, синтаксис Java - простий і інтуїтивно зрозумілий. Так, це не розмовна англійська, однак, навіть не володіючи ніякими спеціальними знаннями зрозуміло, що програма просто виводить на екран фразу “Привіт, світ!”.

Результатом виконання буде:

Hello, world!

До речі, помітили параметр методу main - масив рядків args? Якщо запустити програму в консолі і вказати якісь параметри, вони потраплять саме сюди.

Робота з параметрами командного рядка

А тепер уявімо, що ми хочемо аби зі світом віталась не програма, а її розробник, повідомляючи своє ім’я та вік. Тоді код може виглядати наступним чином:

public class TestIntro {
    public static void main(String[] args) {
        System.out.println("Hello! My name is "+args[0]+" and I'm "+args[1]+" years old!");
    }
}

Спочатку цю програму треба зкомпілювати:

javac TestIntro.java

А тепер запустити:

java TestIntro John 21

Результатом виконання буде:

Hello! My name is John and I'm 21 years old!

А якщо дані “вшити” в програму?

Уявімо собі, що нам треба вивесті інофрмацію (вартість та код товару) про сорочку, яка продається у нашому магазині. Це можна зробити наступним чином:

Shirt Example

Як бачимо, і знову все дуже просто!

До речі, вже мабуть час згадати одну типову рекомендацію стосовно написання коду. Звучить вона дуже просто - не забувайте про коментарі! Якщо з вашим кодом будуть працювати інші люди - просто необхідно прокоментувати деякі неоднозначні або складні ділянки коду. І навіть коли ви пишете код для власного використання - коментарі - це чудовий спосіб відкривши код через місяць або рік швидко в ньому розібратися. Як в усіх С-подібних мовах, для однострокових коментарів в Java використовується два слеші, наприклад:

// constructing a greeting line

Досить часто також радять писати коментарі для кожної закриваючої фігурної дужки - вказувати що саме вона закриває, опис чого скінчився. Особливо це важливо коли ваш код має значний обсяг, тож переглянути його весь не використовуючи скролу не вийде. В таких випадках дуже зручно бачити, що ось ця конкретна дужка закриває метод або класс, початок опису якого ми бачили десь там “зверху” - на попередніх екранах.

public class TestShirt {
    public static void main(String[] args) {
        double price = 29.99;
        int ID = 42889;
        char size ='X';

        System.out.println("Shirt ID: " + ID);
        System.out.println("Shirt price: " + price);
        System.out.println("Shirt size: " + size);
    } // end main
} // end TestShirt class

Ще один важливий нюанс - це те, що навіть “процедурні” програми в Java написано в об’єктно-орієнтованому стилі - навіть програма “Hello, world” в Java містить один клас з одним методом! Як ми вже говорили вище, ми явнайшвидше почнемо програмувати у “правильному” стилі й познайомимось з такими поняттями, як класи та об’єкти, атрибути та операції, воркер-класи та тест-класи, ієрархії наслідування, абстрактні класи та інтерфейси, пакети тощо.

OOP


Попередня лекція: