Коли ми розглядаємо java-програму, її можна визначити як сукупність об'єктів, які взаємодіють з допомогою виклику методів одне одного. Тепер дозвольте нам коротко розібратися в синтаксисі мови Java, що ж клас, об'єкт, методи та змінні примірники означають.
Об'єкт- об'єкти мають стан та поведінку. Наприклад: собака може мати стан – колір, ім'я, а також і поведінку – кивати, бігти, гавкати, їсти. Об'єкт є екземпляром класу.
Клас- може бути визначений як шаблон, який визначає поведінку об'єкта.
Метод- є переважно поведінкою. Клас може містити кілька способів. Саме у методах логічно записані дані маніпулюють та виконують усі дії.
Змінні екземпляри- кожен об'єкт має свій унікальний набір змінних екземплярів. Стан об'єкта створюється значеннями, наданими цим змінним екземпляром.
Перша програма та знайомство з синтаксисом мови
Давайте розглянемо простий код, в результаті якого будуть виведені на екран слова «Привіт мир!», а за один синтаксис Java.
Public class MyFirstJavaProgram ( public static void main(String args) ( /* Це перша моя java-програма. В результаті виконання на екран буде виведено "Привіт світ!" */ System.out.println("Привіт світ!"); / / Виведення повідомлення на екран ) )
- Відкрийте блокнот і додайте код, вказаний вище.
- Збережіть файл як MyFirstJavaProgram.java. Нижче ми розглянемо синтаксис Java і дізнаємося, чому саме під таким ім'ям.
- Відкрийте вікно командного рядка та перейдіть до каталогу, де було збережено файл. Припустимо, що це C:\.
- Введіть «Javac MyFirstJavaProgram.java» і натисніть Enter, щоб скомпілювати код. Якщо немає помилки в коді, командна строкаприведе Вас до наступному рядку: (Assumption: The path variable is set).
- Тепер введіть java MyFirstJavaProgram для запуску програми.
- Тепер Ви побачите "Привіт Мир!", надрукований у вікні.
Основи синтаксису мови Java
Дуже важливо знати та пам'ятати наступні моменти у синтаксисі:
- Чутливість до регістру - Java чутливий до регістру, тобто ідентифікатор Hello і Hello мають різний сенс.
- Назва класів - для всіх перша літера має бути в верхньому регістрі.
- Якщо кілька слів використовуються, щоб сформувати назву класу, перша літера кожного внутрішнього слова має бути у верхньому регістрі, наприклад, MyJavaClass.
- Назва методів – у синтаксисі Java всі імена методів повинні починатися з літери нижнього регістру.
- Якщо кілька слів використовуються, щоб сформувати ім'я методу, то перша літера кожного внутрішнього слова має бути у верхньому регістрі, наприклад «public void myMethodName()».
- Назва файлу програми - найменування файлу програми має точно збігатисяз ім'ям класу.
- При збереженні файлу, Ви повинні зберегти його, використовуючи ім'я класу (пам'ятайте про чутливість до регістру) і додати ".java" в кінці імені (якщо імена не співпадають, Ваша програма не компілюватиметься), наприклад, "MyJavaProgram" - це назва класу тоді файл повинен бути збережений як «MyJavaProgram.java».
- public static void main(String args) - обробка програми починається з методу Main(), який обов'язковою частиною кожної програми.
Ідентифікатори в Java
Ідентифікатори- імена, що використовуються для класів, змінних та методів. Усі компоненти Java потребують імена.
Існує декілька правил у синтаксисі мови Java, які необхідно пам'ятати про ідентифікатор. Вони такі:
- Кожен ідентифікатор повинен починатися з "A" до "Z" або "a" до "z", "$" або "_".
- Після першого символу може мати будь-яке поєднання символів.
- Ключове слово не може бути використане як ідентифікатор.
- Найголовніше - ідентифікатор Java чутливий до регістру.
- Приклад правильного написання: age, $ salary, _value, __1_value.
- Приклад неправильного написання: 123abc, -salary.
Перерахування
Переліки були введені у Java 5.0. Вони обмежують змінну, щоб вибрати лише одне з кількох визначених значень. Значення в цьому списку називаються перерахування.
За допомогою переліку Java можна зменшити кількість помилок у коді.
Наприклад, якщо розглядати заявки на свіжий сік у магазині, можна було б обмежити розмір упаковки соку як для малих, середніх та великих. Це дозволяє за допомогою використання в Java перерахування зробити так, щоб ніхто не замовив будь-який інший розмір упаковки, крім як малий, середній або великий.
Приклад коду перерахування Java
class FreshJuice ( enum FreshJuiceSize( SMALL, MEDIUM, LARGE ) FreshJuiceSize size; ) public class FreshJuiceTest ( public static void main(String args)( FreshJuice juice = новий FreshJuice(); juice.size = FreshJuice; .println("Розмір:" + juice.size) ) )Отриманий результат вище наведеного прикладу:
Розмір: MEDIUM
Примітка: Java перерахування можуть бути оголошені як самостійно, так і всередині класу. Методи, змінні, конструктори можуть бути визначені усередині перерахування.
Типи змінних
- Локальні змінні.
- Змінні класи (статичні).
- Змінні екземпляри (динамічні).
Модифікатори
Як і в інших мовах, Java можна модифікувати класи, методи і так далі, за допомогою модифікаторів. Модифікатори Java ділиться на дві категорії:
- З доступом: default, public, protected, private.
- Без доступу: final, abstract, strictfp.
Докладніше розглянемо модифікатори класу, модифікатори методів та інші наступному розділі.
Масив
У Java масив є об'єктом, який зберігає кілька змінних одного і того ж типу. Проте сам масив є об'єктом. Ми розглянемо, як створити та заповнити масив у наступних розділах.
Сторінки JSP мають комбінований синтаксис: об'єднання стандартного синтаксису, що відповідає специфікації HTML, та синтаксису JSP, визначеного специфікацією Java Server Pages. Синтаксис JSP визначає правила запису сторінок JSP, що складаються зі стандартних тегів HTMLта тегів JSP. Сторінки JSP, крім HTML-тегів, містять теги JSP наступних категорій:
Директиви JSP
Директивизабезпечують глобальну інформацію щодо конкретних запитів, що надсилаються до JSP, і надають інформацію, необхідну на стадії трансляції.Директивизавжди розміщуються на початку JSP-сторінки до всіх інших тегів, щоб parser(аналізатор) JSP при розборі тексту на початку виділив глобальні інструкції. Таким чином, JSP Engine (середовище виконання JSP), аналізуючи код, створює з JSP сервлет. Директивиє повідомлення контейнеру JSP. Синтаксис директив JSP виглядає так:
<%@ директива имяАтрибута="значение" %>Синтаксис завдання директивна XML:
- page (сторінка)
- taglib (бібліотека тегів)
- include (включити)
Директива page
Директива pageвизначає властивості сторінки JSP, які впливають транслятор. Порядок дотримання атрибутів у директиві pageне має значення. Порушення синтаксису або наявність нерозпізнаних атрибутів призводить до помилки трансляції. Приклад директиви pageможе бути наступний код:<%@ page buffer="none" isThreadSafe="yes" errorPage="/error.jsp" %>Ця директива повідомляє, що дана сторінка JSP не використовує буферизацію, що можливе одночасне звернення до цієї сторінки JSP багатьох користувачів, і що підтримується сторінка помилок з ім'ям error.jsp.Директива pageможе містити інформацію про сторінку:<%@ page info = "JSP Sample 1" %>Список можливих атрибутів директиви pageпредставлений у таблиці.
Найменування атрибуту | Значення | Опис |
---|---|---|
language | Рядок | Визначає мову, яка використовується у скриптлетах файлу JSP, виразах або будь-яких файлах, що включаються, у тому числі, в тілі відтрансльованого коду. За промовчанням приймається значення "java" |
extends | Рядок | Задає суперклас для сервлета, що генерується. Цей атрибут слід використовувати з великою обережністю, оскільки можливо, що сервер вже використовує якийсь суперклас |
import | Рядок | Визначення імпортованих пакетів, наприклад: <%@ page import="java.util.* %> |
Session | true або false | Значення true(Приймається за умовчанням) свідчить про те, що заздалегідь певна змінна session(тип HttpSession) має бути прив'язана до існуючої сесії, якщо така є, інакше створюється нова сесія, до якої здійснюється прив'язка. Значення falseвизначає, що сесії не будуть використовуватися, і спроби звернення до змінної sessionприведуть до виникнення помилки під час трансляції JSP сторінки в сервлет |
Buffer | none або розмір буфера кБ. | Задає розмір буфера JspWriter out. Значення за замовчуванням залежить від налаштувань сервера і не повинно перевищувати 8 кБ. Якщо значення дорівнює noneвисновок відбувається безпосередньо в об'єкт |
autoFlush | true або false | Визначає, чи повинен буфер звільнятися автоматично, коли він переповнений, або сталася помилка. За замовчуванням значення true |
isThreadSafe | true або false | Значення true(приймається за умовчанням) задає нормальний режим виконання сервлета, коли множинні запити обробляються одночасно з використанням одного екземпляра сервлета, виходячи з міркування, що автор синхронізував доступ до змінних цього екземпляра. Значення false ("брехня") сигналізує про те, що сервлет повинен успадковувати SingleThreadModel(однопоточну модель), при якій послідовні або одночасні запити обробляються окремими екземплярами сервлету |
info | Рядок | Визначає рядок інформації про сторінку JSP, яка буде доступна за допомогою методу Servlet.getServletInfo() |
errorPage | Рядок | Значення атрибута є URL-сторінка, яка повинна виводитися у випадку можливих помилок, що викликають винятки |
isErrorPage | true або false | Сигналізує про те, чи ця сторінка використовується для обробки помилок для інших JSP сторінок. За замовчуванням приймається значення false |
contentType | Рядок | Визначає кодування для сторінки JSP та відповіді, а також MIME-тип відповіді JSP. Значення за умовчанням типу змісту - text/html, кодування - ISO-8859-1.Наприклад: contentType="text/html;charset=ISO-8859-1" |
pageEncoding | Рядок | Визначає кодування символів JSP. За замовчуванням використовується charsetз атрибуту contentTypeякщо воно там визначено. Якщо значення charsetв атрибуті contentTypeне визначено, значення pageEncodingвстановлюється рівним ISO-8859-1 |
Директива taglib
Директива taglibповідомляє, що ця сторінка JSP використовує бібліотеку тегів, унікальним чином ідентифікуючи її за допомогою URI, і ставить у відповідність префікс тега, за допомогою якого можливі дії в бібліотеці. Якщо контейнер не може знайти бібліотеку тегів, то виникає фатальна помилка трансляції. Директива taglibмає наступний синтаксис:<%@ taglib uri="URI бібліотеки тегів, що включається" prefix=" ім'я Префікса"%> Префікс" ім'я Префікса" використовується при зверненні до бібліотеки. Приклад використання бібліотеки тегів mytags: <%@ taglib uri="http://www.taglib/mytags" prefix="customs" %> . . .Директива включає
Директива includeдозволяє вставляти текст або код у процесі трансляції сторінки JSP у сервлет. Синтаксис директиви includeмає такий вигляд:<%@ include file="Відносний URI сторінки, що включається"%> Директива includeмає один атрибут - file. Вона включає текст специфікованого ресурсу файл JSP. Цю директиву можна використовувати для розміщення стандартного заголовка про авторські права на кожній сторінці JSP:<%@ include file="copyright.html" %>Контейнер JSP отримує доступ до файлу. Якщо файл змінився, контейнер може перекомпілювати сторінку JSP. Директива includeрозглядає ресурс, наприклад, сторінку JSP як статичний об'єкт. Заданий URI зазвичай інтерпретується щодо JSP сторінки, на якій розташоване посилання, але, як і при використанні будь-яких інших відносних URI, можна задати системі положення ресурсу, що цікавить, відносно домашнього каталогу WEB-сервера додаванням на початок URI символу "/". Вміст файлу, що підключається, обробляється як звичайний текст JSP і тому може включати такі елементи, як статичний HTML, елементи скриптів, директиви та дії. Багато сайтів використовують невелику навігаційну панель на кожній сторінці. У зв'язку з проблемами використання кадрів HTML часто це завдання вирішується розміщенням невеликої таблиці зверху чи лівій половині сторінки, HTML код якої багаторазово повторюється кожної сторінки сайту. Директива include- це найбільш природний спосібвирішення даної задачі, що рятує розробника від кошмару рутини копіювання HTML у кожен окремий файл. Оскільки директива includeпідключає файли в ході трансляції сторінки, то після внесення змін до панелі навігації потрібна повторна трансляція всіх сторінок, що її використовують JSP. Якщо підключені файли змінюються досить часто, можна використовувати дію jsp:include, який підключає файл під час звернення до JSP сторінці.Оголошення JSP
Declarations (Declarations)призначені для визначення змінних та методів мовою скриптів, які надалі використовуються на сторінці JSP. Синтаксис declarationsмає такий вигляд:<%! код Java %> Оголошеннярозміщуються в блоці оголошень, а викликаються в блоці виразів сторінки JSP. Код у блоці оголошень зазвичай пишеться на мовою JavaОднак сервери програм можуть використовувати синтаксис та інші сценарії. Оголошенняіноді використовуються для того, щоб додати додаткову функціональність під час роботи з динамічними даними, одержуваними з властивостей компонентів JavaBeans. Приклади оголошеньпредставлені у таблиці. Оголошенняможе містити кілька рядків, наприклад, у наведеному нижче коді обчислення значення функції fact (int n), яка повинна дорівнювати 1 при n менше 2 і n! за позитивного значення n;<%! public static int fact (int n) { if (n Оголошенняне роблять жодного висновку у стандартний вихідний потік out. Змінні та методи, декларовані в оголошеннях, ініціалізуються та стають доступними для скриптлетів та інших оголошеньу момент ініціалізації сторінки JSP.Скриптлети JSP
Скриптлетивключають різні фрагменти коду, написаного мовою скрипта, визначеного у директиві language. Фрагменти коду повинні відповідати синтаксичним конструкціям мови скриптлетів, тобто, як правило, синтаксису мови Java. Скриптлетимають наступний синтаксис:<% текст скриптлета %>Еквівалент синтаксису скриптлетудля XML є:Якщо у тексті скриптлетунеобхідно використовувати послідовність символів %> саме як поєднання символів, а не як тег - ознака закінчення скриптлету, замість %> слід використовувати наступне поєднання символів %.У специфікації JSP наводиться простий і зрозумілий приклад скриптлету, що забезпечує динамічну зміну вмісту сторінки JSP протягом дня.<% if (Calendar.getInstance ().get (Calendar.AM_PM) == Calendar.AM) {%>Good Morning<% } else { %>Good Afternoon<% } %>Необхідно зауважити, що код усередині скриплетавставляється у вигляді, як і записаний, і весь статичний HTML-текст (текст шаблону) до чи після скриплетаконвертується за допомогою оператора print. Це означає, що скриплети не обов'язково повинні містити завершені фрагменти на Java, і що залишені відкритими блоки можуть вплинути на статичний HTML-текст поза скриплета. Скриплетимають доступ до тих же автоматично визначених змінних, що й вирази. Тому, наприклад, якщо є необхідність вивести будь-яку інформацію на сторінку, необхідно скористатися змінною out. <% String queryData = request.getQueryString (); out.println ("Дополнительные данные запроса: " + queryData); %>
Вирази JSP
Виразу сторінці JSP - це вираз, написаний мовою скрипта, вказаного в оголошенні language(Як правило Java). Результат вирази JSP, який має обов'язковий тип String, Спрямовується в стандартний потік виведення outза допомогою поточного об'єкта JspWriter. Якщо результат виразине може бути наведено до типу String, виникає або помилка трансляції, якщо проблема була виявлена на етапі трансляції, або збуджується виняток ClassCastException, якщо невідповідність було виявлено у процесі виконання запиту. Виразмає наступний синтаксис: <%= текст вираження %> альтернативний синтаксис для виразів JSP під час використання XML:- request, HttpServletRequest;
- response, HttpServletResponse;
- session, HttpSession - асоціюється із запитом, якщо такий є;
- out, PrintWriter - буферизований варіант типу JspWriter для надсилання даних клієнту.
обов'язково має збігатися з ім'ям класу, метод якого main() викликається при запуску Java машини.
int a; ... дії над змінною a...; if(a) ( ... )
Не вірний з точки зору синтаксису Java і не буде скомпільований.
- У разі використання як конструктор - super завжди має бути першимоператором у конструкторі підкласу.
Крім того, підтримуються обмежені типичерез вказівку суперкласу для класів-параметрів. Наприклад, оголошення "узагальненого класу" CLASS_NAME
Одним із фундаментальних елементів багатьох мов програмування є умовні конструкції . Дані конструкції дозволяють направити роботу програми одним із шляхів залежно від певних умов.
У мові Java використовуються такі умовні конструкції: if..else та switch..case
Конструкція if/else
Вираз if/else перевіряє істинність певної умови та залежно від результатів перевірки виконує певний код:
Int num1 = 6; int num2 = 4; if(num1>num2)( System.out.println("Перше число більше другого"); )
Після ключового слова if ставиться умова. І якщо ця умова виконується, то спрацьовує код, який поміщений далі в блоці if після фігурних дужок. Як умови виступає операція порівняння двох чисел.
Оскільки, у разі перше число більше другого, то вираз num1 > num2 істинно і повертає значення true . Отже, управління переходить в блок коду після фігурних дужок і починає виконувати інструкції, що містяться там, а саме метод System.out.println("Перше число більше другого"); . Якби перше число виявилося менше другого або дорівнює йому, то інструкції в блоці if не виконувались би.
Але що, якщо ми захочемо, щоб у разі недотримання умови також виконувались якісь дії? У цьому випадку ми можемо додати блок else:
Int num1 = 6; int num2 = 4; if(num1>num2)( System.out.println("Перше число більше другого"); ) else( System.out.println("Перше число менше другого");
Int num1 = 6; int num2 = 8; if(num1>num2)( System.out.println("Перше число більше другого"); ) else if(num1 Також ми можемо поєднати відразу кілька умов, використовуючи логічні оператори: Int num1 = 8; int num2 = 6; if(num1 > num2 && num1>7)( System.out.println("Перше число більше другого і більше 7"); ) Тут блок if буде виконуватися, якщо num1>num2 дорівнює true і одночасно num1>7 дорівнює true. Конструкція switch/caseаналогічна конструкції if/else , оскільки дозволяє обробити відразу кілька умов: Int num = 8; switch(num)( case 1: System.out.println("число дорівнює 1"); break; case 8: System.out.println("число дорівнює 8"); num++; break; case 9: System.out. println("число дорівнює 9"); break; Після ключового слова switch у дужках йде порівнюваний вираз. Значення цього виразу послідовно порівнюється зі значеннями, розміщеними після оператора сase . І якщо збіг буде знайдено, виконуватиметься певний блок сase . Наприкінці блоку сase ставиться оператор break, щоб уникнути виконання інших блоків. Наприклад, якби прибрали оператор break у наступному випадку: Case 8: System.out.println("число дорівнює 8"); num++; case 9: System.out.println("число дорівнює 9"); break; то оскільки у нас змінна num дорівнює 8, то виконався б блок case 8 , але так як в цьому блоці змінна num збільшується на одиницю, оператор break відсутня, то почав би виконуватися блок case 9 . Якщо ми хочемо також обробити ситуацію, коли збігу не буде знайдено, можна додати блок default , як у прикладі вище. Хоча блок default необов'язковий. Починаючи з JDK 7 у виразі switch..case крім примітивних типів можна також використовувати рядки: Package firstapp; import java.util.Scanner; public class FirstApp ( public static void main(String args) ( Scanner in = new Scanner(System.in); System.out.println("Введіть Y або N: "); String input= in.nextLine(); switch( input)( case "Y": System.out.println("Ви натиснули букву Y"); break; case "N": System.out.println("Ви натиснули букву N"); break; default: System.out .println("Ви натиснули невідому літеру"); Тернарна операція має наступний синтаксис: [перший операнд - умова] ? [другий операнд]: [третій операнд]. Таким чином, у цій операції беруть участь одразу три операнда. Залежно від умови тернарна операція повертає другий чи третій операнд: якщо умова дорівнює true, то повертається другий операнд; якщо умова дорівнює false, то третій. Наприклад: Int x=3; int y=2; int z = x Тут результатом тернарної операції є змінна z. Спочатку перевіряється умова x Станіслав Горнаков Для того щоб говорити та читати будь-якою іноземною мовою, необхідно вивчити алфавіт та граматику цієї мови. Подібна умова спостерігається і при вивченні мов програмування, з тією різницею, як мені здається, що цей процес дещо легший. Але перш ніж починати писати вихідний код програми, необхідно спочатку вирішити поставлене перед вами завдання у будь-якому зручному для себе вигляді. Давайте створимо якийсь клас, що відповідає, наприклад, за телефон, який буде мати всього два методи: включає і вимикає цей телефон. Оскільки ми зараз не знаємо синтаксис мови Java, то напишемо клас Телефон абстрактною мовою. Клас Телефон ( Метод Включити ( ) ( / / Операції з увімкнення телефону ) Метод Вимкнути ( ) ( / / Операції з вимикання телефону ) ) Приблизно так може бути клас Телефон. Зверніть увагу, що фігурні дужки позначають відповідно початок і кінець тіла класу, способу, або будь-якої послідовності даних. Тобто дужки вказують на належність до методу чи класу. На кожну дужку, що відкриває, обов'язково повинна бути дужка, що закриває. Щоб не заплутатися, їх зазвичай ставлять на одному рівні в коді. А тепер давайте запишемо той самий клас тільки вже мовою Java. Class Telefon ( void on() ( // тіло методу on() ) void off() ( // тіло методу off() ) ) Ключове слово class у мові Java оголошує клас, далі йде назва самого класу. У нашому випадку це телефон. Відразу кілька слів щодо регістру запису. Майже у всіх мовах програмування важливо зберігати запис назв у тому регістрі, в якому він був зроблений. Якщо ви написали Телефон, то вже таке написання, як телефон або TELefoN, видасть помилку при компіляції. Як спочатку написали, так і треба писати далі. Зарезервовані або ключові слова записуються у своєму певному регістрі, і ви не можете їх використовувати, даючи їх назви методам, класам, об'єктам тощо. Прогалини між словами немає значення, оскільки компілятор їх просто ігнорує, але читабельності коду вони важливі. У тілі класу Telefon є два методи: on() – що включає телефон і метод off() – телефон, що вимикає. Обидва методи мають свої тіла і в них, за ідеєю, має бути якийсь вихідний код, який описує необхідні дії обох методів. Для нас зараз не має значення, як відбувається реалізація цих методів, головне – це синтаксис мови Java. Обидва методи мають круглі дужки on(), всередині яких можуть бути записані параметри, наприклад on(int time) або on(int time, int time1). За допомогою параметрів відбувається своєрідний зв'язок методів із зовнішнім світом. Говорять, що метод on(int time) приймає параметр time. Для чого це потрібно? Наприклад, ви хочете, щоб телефон увімкнувся у певний час. Тоді ціле значення у параметрі time буде передано в тіло методу і на основі отриманих даних відбудеться включення телефону. Якщо дужки порожні, метод не приймає жодних параметрів. Коментарі У класі Telefon у тілах обох методів є запис після двох слешів: //. Такий запис означає коментарі, які будуть ігноруватися компілятором, але потрібні для читабельності коду. Чим більше інформації ви закоментуєте під час написання програми, тим більше у вас буде шансів згадати через рік, над чим же весь цей час працювали. Коментарі в Java можуть бути трьох видів, це: //, /*…*/ та /**…*/. Коментарі, записані за допомогою оператора // повинні розташовуватися в одному рядку: // Один рядок! Помилка! На другий рядок переносити не можна! // Перший рядок // Другий рядок // … // Останній рядок Коментарі, що використовують оператори /*…*/ можуть розташовуватися на кількох рядках. На початку вашого коментаря поставте /*, а наприкінці, коли закінчите коментувати код, поставте оператор */. Останній вид коментаря /**…*/ використовується при документуванні коду і може розташовуватися на будь-якій кількості рядків. Типи даних Java Щоб задати довільне значення, Java існують типи даних. У класі Telefon ми створили два методи. Обидва методи не мали параметрів, але коли наводився приклад методу on(int time) з параметром time, йшлося про передачу значення метод. Це значення вказувало на час, за допомогою якого нібито повинен увімкнутися телефон. Специфікатор int таки визначає тип значення time. У Java 2 МЕ шість типів даних. Byte - мале ціле значення від -128 до 128; Щоб оголосити якесь необхідне значення, використовується запис: Int time; long BigTime; char word; Оператор точка з комою необхідний після записів і ставиться наприкінці рядка. Можна поєднати кілька однакових за типом оголошень через кому: Mt time, time1, time2; Тепер давайте удосконалимо наш клас Telefon, додавши до нього кілька значень. Методи on() і off() нам більше не потрібні, додамо нові методи, які справді можуть вирішувати певні завдання. Class Telefon ( //S – площа дисплея //w – ширина дисплея //h – висота дисплея int w, h, S; //метод, що обчислює площу дисплея void Area() ( S = w*h; ) ) Отже, ми маємо три змінні S, w і h, які відповідають, відповідно, за площу, ширину та висоту дисплея в пікселях. Метод Area() обчислює площу екрана телефону в пікселях. Операція марна, але дуже показова і проста в розумінні. Тіло методу Area() набуло себе і має вигляд S = w * h. У цьому методі ми просто перемножуємо ширину на висоту і присвоюємо або, як ще кажуть, зберігаємо результат у змінній S. Ця змінна міститиме значення площі дисплея даного телефону. Зараз ми підійшли впритул до операторів мови Java, за допомогою яких можна здійснювати всілякі операції та про які ми поговоримо вже в наступній частині цієї серії статей.Конструкція switch
Тернарна операція
short – коротке ціле значення діапазоні від –32768 до 32767;
int - містить будь-яке ціле значення від -2147483648 до 2147483647;
long - дуже велике ціле значення, від -922337203685475808 до 9223372036854775807;
char – це символьна константа у форматі Unicode. Діапазон цього формату від 0 до 65536, що дорівнює 256 символам. Будь-який символ цього типу повинен записуватися в одинарних лапках, наприклад: G;
boolean – логічний тип, має два значення: false – брехня і true – істина. Цей тип часто використовується в циклах, про які трохи пізніше. Сенс дуже простий – якщо у вас у кишені є гроші, імовірно, це true, а якщо ні то false. Таким чином, якщо гроші є – йдемо в магазин за хлібом чи пивом (потрібне підкреслити), якщо немає грошей – залишаємось вдома. Тобто це така логічна величина, яка сприяє вибору подальших дій вашої програми.