Новости

Magnum news - Глава №1. основи Java

  1. Magnum news - Глава №1. основи Java Описувати історію створення мови тут я вже точно не стану, цієї...
  2. Який моделі програмування дотримується Java.
  3. Синтаксис.
  4. Домашні завдання (лістинг програм і опис алгоритмів без порядкового пояснення рядків коду):
  5. Magnum news - Глава №1. основи Java
  6. Як працює мову.
  7. Який моделі програмування дотримується Java.
  8. Синтаксис.
  9. Домашні завдання (лістинг програм і опис алгоритмів без порядкового пояснення рядків коду):
  10. Magnum news - Глава №1. основи Java
  11. Як працює мову.
  12. Який моделі програмування дотримується Java.
  13. Синтаксис.
  14. Домашні завдання (лістинг програм і опис алгоритмів без порядкового пояснення рядків коду):

Magnum news - Глава №1. основи Java

основи Java

Описувати історію створення мови тут я вже точно не стану, цієї інформації і так досить багато, та й при роботі з мовою програмування Java це навряд чи якось допоможе =)

Максимум, що тут можна сказати, що свого часу ця мова дав великий поштовх для створення динамічної інфраструктури та заклав фундамент для подальшого розвитку інших мов, а також технологій.

У цьому розділі за звичаєм, як і в будь-який інший книзі дається перше уявлення про можливості мови Java:

Як працює мову.

З огляду на історію і час, коли створювався цей мова, а також навіщо! То тут варто відзначити, що мова є кросплатформним, тобто він може працювати на будь-якій платформі (як апаратної, так і операційної), єдиною вимогою є наявність Java Virtual Machine.

Java Virtual Machine(скорочено Java VM, JVM)

- віртуальна машина Java - основна частина виконує системи Java, так званої Java Runtime Environment (JRE). Віртуальна машина Java виконує байт-код Java, попередньо створений з вихідного тексту Java-програми компілятором Java (javac). JVM може також використовуватися для виконання програм, написаних на інших мовах програмування. Наприклад, вихідний код на мові Ada може бути откомпилирован в байт-код Java, який потім може виконатися за допомогою JVM.

Таке визначення дає нам Wikipedia . Якщо ж це перефразувати в більш просту форму, то:

Java Virtual Machine

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

Саме завдяки байт-коду, мова Java може виконуватися на різних платформах, таких як комп'ютери, телевізори, смартфони і навіть тостери (принади розумного будинку). Адже раніше не було єдиного стандарту для процесорів і ОС. Тому нативні мови (ті вихідний текст яких компілювався під конкретну платформу) не могли забезпечити переносимість програм.

Даний процес можна уявити приблизно так:

Вихідний код => Байт-код => JVM => Нативний код

Більш детально це звучить так! Ви пишете програму, потім її компілюєте, але тут процес компіляції не такий як прийнято вважати наприклад, в C ++, тут програма і перетворюється в цей магічний байт-код! Далі природно йде її запуск, саме тут вступає в дію JVM яка перетворює байт-код в нативний код, запускає і виводить результат на ваш екран!

Примітка: файл з вихідним кодом матиме розширення ".java", а файл з байт-кодом буде ".class".

Який моделі програмування дотримується Java.

Java є об'єктно-орієнтованою мовою програмування!

Об'єктно-орієнтоване програмування(ООП)

- методологія програмування, заснована на представленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію спадкування.

Тобто всі програми без винятку мають хоча б один клас і метод! наприклад:

/ * * Це приклад простої програми на Java. * Дайте файлу з вихідним кодом ім'я Example.java * / class Example {public static void main (String [] args) {System.out.println ( "Java править Інтернетом!"); }}

Це перша програма в книзі, зазвичай там пишуть усталену фразу "Hello World", але тут чомусь вирішили відійти від звичних канонів =). Трохи пізніше я до неї ще повернуся!

Інші приклади з цієї глави можна знайти в моєму репозиторії на GitHub :

  1. перший
  2. другий
  3. третій
  4. четвертий
  5. п'ятий
  6. шостий
  7. Перше практичне завдання
  8. Друге практичне завдання

Основними принципами об'єктно-орієнтованого програмування є інкапсуляція, поліморфізм і успадкування :

Інкапсуляція

- це властивість системи, що дозволяє об'єднати дані і методи, що працюють з ними, в класі і приховати деталі реалізації від користувача. Поліморфізм - це властивість системи використовувати об'єкти з однаковим інтерфейсом без інформації про тип і внутрішню структуру об'єкта. Спадкування - це властивість системи, що дозволяє описати новий клас на основі вже існуючого з частково або повністю запозичує функціональністю. Клас, від якого виробляється спадкування, називається базовим або батьківським. Новий клас - нащадком, спадкоємцем або похідним класом.

На перший погляд ці поняття виглядають жахливо і не зрозуміло, але це тільки на перший погляд!

Простими словами:

Інкапсуляція

- це об'єкт, дані і код для роботи з якими, прихований від тих, хто з усім цим буде працювати. Взаємодія користувача з об'єктом обмежується конкретним визначеним набором дій і правил! Тільки так і ніяк інакше. Поліморфізм - це по суті майже та ж інкапсуляція, різниця полягає в тому, що, маючи схожий інтерфейс взаємодії (дії і правила використання) з об'єктом, його внутрішня реалізація (код) може бути абсолютно різною. Приклад тому кермо автомобіля, у всіх автомобілях круглий, але як саме він працює всередині водій не бачить (на тягах або гідропідсилювачі). Спадкування - найпростіший у розумінні принцип! Все вчили біологію в школі і пам'ятають про видах і підвидах. Тому тут простіше привести приклад. Є рослини, у них є підвиди: дерева, кущі та тд. У них різний зовнішній вигляд, але при цьому всі вони рослини мають листя і коріння!

У розумінні цих принципів і полягає вся суть ООП, ось наприклад, бачення однієї людини ім'я, якого на жаль я зараз не можу згадати (стиль і помилки збережені):

Казка про ООП.
Просто спочатку (коли код писали ще на перфокартах, а трохи пізніше - на асемблері) було лінійне програмування. Коли програма була просто набором команд і виконувалася від початку і до кінця. Природно, були розгалуження всякі, цикли тощо .... Але програма починалася з початку коду, а дані зберігалися в окремій області пам'яті, яка іноді могла перетинатися з областю коду.
Потім, зрозуміли, що одні й ті ж шматки коду часто повторюються ... І придумали виділяти їх в окремі процедури і функції ... Так з'явилося процедурне програмування. Була одна головна процедура (наприклад в С ++ вона так і називається main), яка запускалася при старті програми, а вона вже викликала всі інші процедури. Дані при цьому зберігалися в основному в глобальних змінних. Жити стало трохи легше. Але з ростом розмірів програм, все частіше стали траплятися ситуації, коли якась процедура змінює спосіб взаємодії з якими-небудь глобальними даними таким чином, що це вимагало зміни структури глобальних даних. І такі зміни приводили до того, що інші процедури переставали працювати. Доводилося лазити по всьому коду, вишукуючи де ще можуть використовуватися ці глобальні змінні і виправляти їх. Робота була рутинна. І баги плодилися з немеряних швидкістю .... Плюс була ще одна проблема, коли різні процедури незалежно один від одного змінювали одні і ті ж глобальні змінні, і в самі невідповідні моменти, в цих змінних виявлялися зовсім несподівані значення. Цього роду помилки відловлювати було взагалі важко. Але найважче стало, коли додатки стали багато-і одні і ті ж змінні стали змінюватися паралельними потоками (тобто передбачити поточне значення змінної, дивлячись в код - стало в принципі не можливим) ....
Ось тут-то ті, кому це найбільше набридло, сіли, і придумали ООП.
Вони домовилися. А давайте код групувати в "об'єкти"! І нехай дані об'єкта будуть доступні ТІЛЬКИ йому (так з'явилася Інкапсуляція)! Якщо кому потрібно змінити дані об'єкта, то нехай він звернутися до об'єкта з проханням щось зробити (виклик методу об'єкта) і об'єкт це прохання вже сам обробляє так, як вважає за потрібне.
Ну а далі, коли знову прийшли до того, що при написанні схожих, незначно відрізняються один від одного об'єктів, доводиться багато коду повторювати, придумали Спадкування і поліморфізм.
Казка - брехня! Так в ній натяк! Хто засвоїв - тим урок! ;)

Синтаксис.

Ключем до вивчення будь-якої мови є знання його синтаксису. Це стосується вивчення як іноземних мов, так і мов програмування.

Знаючи алфавіт, ти зможеш читати і писати слова, а розуміючи його граматику, можна писати цілі поеми =)

Точно так само і в мовах програмування, розуміючи основні принципи, можна не тільки писати, читати програмний код, а й ще до його виконання розуміти, яким буде результат його виконання!

На правах "капітана очевидності" скажу, що алфавітом служать латинські символи. Спасибі хоч не китайські ієрогліфи або ще чого, горезвісний мова програмування 1С , Що не доведи господи =))

Далі, по-перше, де ж відбувається вся магія ?! Це можна пояснити на прикладі першої програми в книзі ( її код був приведений вище ). Як я і обіцяв повертаємося до нього =)

class ІмяВашегоКласса {// Його ви придумуєте самі // це головний метод програми, це рядок не змінюється, вона як відправна точка в програмі, саме з нього починається запуск програми public static void main (String [] args) {..... . // А ось тут і відбувається вся магія =)}}

Це слід запам'ятати раз і на завжди як аксіому!

По-друге, список зарезервованих ключових слів:

  1. abstract
  2. assert
  3. boolean
  4. break
  5. byte
  6. case
  7. catch
  8. char
  9. class
  10. const
  11. continue
  12. default
  13. do
  14. double
  15. else
  16. enum
  17. extends
  18. final
  19. finally
  20. float
  21. for
  22. goto
  23. if
  24. implements
  25. import
  26. instanceof
  27. int
  28. interface
  29. long
  30. native
  31. new
  32. package
  33. private
  34. protected
  35. public
  36. return
  37. short
  38. static
  39. strictfp
  40. super
  41. switch
  42. synchronized
  43. this
  44. throw
  45. throws
  46. transient
  47. try
  48. void
  49. volatile
  50. while

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

class Test {public static void main (String [] args) {int goto = 10; System.out.println (goto); }}

Видасть помилку виду:

javac Test.java Test.java:3: error: not a statement int goto = 10; ^ Test.java:3: error: ';' expected int goto = 10; ^ Test.java:5: error: illegal start of expression System.out.println (goto); ^ Test.java:5: error: ';' expected System.out.println (goto); ^ 4 errors

println (goto);  ^ 4 errors

Так само варто відзначити, що ключові слова такі як const і goto зарезервовані, але не використовуються, це так би мовити для любителів бейсика і інших дуже старих мов програмування =)

Так само як імена змінних можна використовувати назви стандартних методів типу println і тд.

І по-третє, правила іменування змінних, методів і класів.

Загальне уявлення про правильне іменування можна знайти в " Угоді з оформлення коду Java ". Але якщо коротко, то змінні:

  1. Ім'я змінної не може починатися в цифр;
  2. Використання допускаються символів знака долара "$" або нижнього підкреслення "_" є негласним правилом поганого тону;
  3. З огляду на, що Java мову не тільки строго типізований, але і регістр залежний, то імена змінних на перший погляд однакові можуть бути різними змінними, наприклад: myvar і Myvar, будуть різними змінними;

Імена методів завжди починаються з маленької літери! Якщо ім'я методу складається з двох слів, то їх на відміну від констант їх не розділяють символом нижнього підкреслення "_", а всього лише пишуть друге слово з великої літери, наприклад myMethod.

З класами все так же, як і з методами, тільки перша буква в імені класу пишеться з великої літери.

Ну і наостанок те, що мені сподобалося в цій книзі! це Контрольні питання і домашнє завдання !

Контрольні питання:

  1. Що таке байт-код і чому він такий важливий для інтернет-програмування на мові Java?

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

  1. Які три ключові принципи об'єктно-орієнтованого програмування?

Відповідь: Поліморфізм, Інкапсуляція, Спадкування.

  1. З чого починається виконання програми на Java?

Відповідь: Виконання програми починається з методу main ()

  1. Що таке змінна?

Відповідь: Мінлива - це іменована осередок пам'яті, розмір пам'яті, виділеної під яку залежить від її типу.

  1. Яке з перерахованих нижче імен змінних неприпустимо:
    1. count +
    2. $ count + (допускається, але є правилом поганого тону)
    3. count27 +
    4. 67count -
  1. Як створюються однорядкові і багаторядкові коментарі?

відповідь:

// Однорядковий коментар / * * Багато рядковий * коментар * /

  1. Як виглядає загальна форма умовного оператора if?

Відповідь: if (умова) оператор;

  1. Як виглядає загальна форма циклу for?

Відповідь: for (ініціалізація; умова; ітерація) оператор;

  1. Як створити блок коду?

Відповідь: Блок коду створюється шляхом укладення одного або більше операторів в фігурні дужки "{}", де перша фігурна дужка є початком блоку коду, а друга його закінченням.

  1. Якщо при введенні коду програми ви допустите помилку, то якого роду повідомлення про помилку отримаєте?

Відповідь: Відповідно до формальних правил, якщо була допущена помилка при наборі програмного коду, то при компіляції вихідного коду в байт-код, компілятор видасть повідомлення про помилку формального зразка з зразковим місцем розташування помилки (при цьому не завжди правильно вкаже на саму помилку, тому довіряти на 100% йому не варто). наприклад:

Example.java:8: ';' expected public static void main (String args []) ^ Example.java: class, interface, or enum expected} ^

  1. Чи має значення, з якої саме позиції в рядку почнеться інструкція?

Відповідь: Ні ні має. Інструкції можуть починатися як з різних рядків, так і знаходиться в одному рядку, єдиною вимогою є наявність ";" в кінці кожної інструкції.

Домашні завдання (лістинг програм і опис алгоритмів без порядкового пояснення рядків коду):

перша програма

/ * * Завдання: * видозмінити програму, створену у вправі 1.2, таким чином, щоб вона виводила таблицю перекладу дюймів в метри. * Виведіть значення довжини до 12 футів через кожен дюйм. Після кожних 12 дюймів виведіть порожній рядок. * (Один метр приблизно дорівнює 39.37 дюйма, в одному футі 12 дюймів) * * Файлу з вихідним кодом назвіть InchesInMeters.java * / class InchesInMeters {public static void main (String [] args) {double meter; int counter; int inch; int foot; counter = 0; // Лічильник що інстанціюється нульовим значенням foot = 12 * 12; // Обчислюємо скільки дюймів в 12 футів for (inch = 1; inch <= foot; inch ++) {meter = inch / 39.37; System.out.println (inch + "дюйму відповідає" + meter + "метра."); counter ++; // Збільшуємо лічильник рядків на 1 на кожній ітерації циклу if (counter == 12) {// Якщо значення лічильника дорівнює 10, вивести порожній рядок System.out.println (); counter = 0; // Скинути лічильник рядків}}}}

Як сказано в умови, програма буде переводити дюйми в метри, аж до 12 футів. А кожні 12 дюймів буде виводиться порожній рядок для візуального поділу!

Алгоритм даної програми досить простий! Насамперед потрібно дізнатися скільки дюймів в 12 футів, потім використовуючи цикл for виводимо на екран скільки метрів в тій або іншій кількості дюймів. Як тільки значення виводиться на екран досягає 12 дюймів, виводиться порожній рядок, для цього використовується вкладене в цикл логічне умова за допомогою оператора if.

Друга програма:

/ * * Завдання: * Сила тяжіння на Місяці становить близько 17% земної. Напишіть програму, яка вирахувала б ваша вага на Місяці. * * Файлу з вихідним кодом назвіть WeightOnTheMoon.java * / class WeightOnTheMoon {public static void main (String [] args) {double my_weight = 82; // Моя вага double moon_gravity = 17; // Сила тяжіння на Місяці double earth_gravity = 100; // Сила тяжіння на Землі double moon_weight; // Змінна яка буде зберігати в собі вагу на Місяці / * Виконуємо розрахунок ваги на Місяці * / moon_weight = (moon_gravity / earth_gravity) * my_weight; / * Виводимо на екран результат * / System.out.print ( "Моя вага на Місяці дорівнює:" + moon_weight + "кг."); }}

У другому домашньому завданні потрібно обчислити вагу людини на Місяці.

Алгоритм цієї програми зводиться до математичних формул! Якщо гравітація на Місяці дорівнює 17% від земної, то потрібно розділити 17 на 100, потім помножити на вагу людини.

Далі залишається тільки вивести на екран повідомлення з вагою людини на Місяці.

Magnum news - Глава №1. основи Java

основи Java

Описувати історію створення мови тут я вже точно не стану, цієї інформації і так досить багато, та й при роботі з мовою програмування Java це навряд чи якось допоможе =)

Максимум, що тут можна сказати, що свого часу ця мова дав великий поштовх для створення динамічної інфраструктури та заклав фундамент для подальшого розвитку інших мов, а також технологій.

У цьому розділі за звичаєм, як і в будь-який інший книзі дається перше уявлення про можливості мови Java:

Як працює мову.

З огляду на історію і час, коли створювався цей мова, а також навіщо! То тут варто відзначити, що мова є кросплатформним, тобто він може працювати на будь-якій платформі (як апаратної, так і операційної), єдиною вимогою є наявність Java Virtual Machine.

Java Virtual Machine(скорочено Java VM, JVM)

- віртуальна машина Java - основна частина виконує системи Java, так званої Java Runtime Environment (JRE). Віртуальна машина Java виконує байт-код Java, попередньо створений з вихідного тексту Java-програми компілятором Java (javac). JVM може також використовуватися для виконання програм, написаних на інших мовах програмування. Наприклад, вихідний код на мові Ada може бути откомпилирован в байт-код Java, який потім може виконатися за допомогою JVM.

Таке визначення дає нам Wikipedia . Якщо ж це перефразувати в більш просту форму, то:

Java Virtual Machine

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

Саме завдяки байт-коду, мова Java може виконуватися на різних платформах, таких як комп'ютери, телевізори, смартфони і навіть тостери (принади розумного будинку). Адже раніше не було єдиного стандарту для процесорів і ОС. Тому нативні мови (ті вихідний текст яких компілювався під конкретну платформу) не могли забезпечити переносимість програм.

Даний процес можна уявити приблизно так:

Вихідний код => Байт-код => JVM => Нативний код

Більш детально це звучить так! Ви пишете програму, потім її компілюєте, але тут процес компіляції не такий як прийнято вважати наприклад, в C ++, тут програма і перетворюється в цей магічний байт-код! Далі природно йде її запуск, саме тут вступає в дію JVM яка перетворює байт-код в нативний код, запускає і виводить результат на ваш екран!

Примітка: файл з вихідним кодом матиме розширення ".java", а файл з байт-кодом буде ".class".

Який моделі програмування дотримується Java.

Java є об'єктно-орієнтованою мовою програмування!

Об'єктно-орієнтоване програмування(ООП)

- методологія програмування, заснована на представленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію спадкування.

Тобто всі програми без винятку мають хоча б один клас і метод! наприклад:

/ * * Це приклад простої програми на Java. * Дайте файлу з вихідним кодом ім'я Example.java * / class Example {public static void main (String [] args) {System.out.println ( "Java править Інтернетом!"); }}

Це перша програма в книзі, зазвичай там пишуть усталену фразу "Hello World", але тут чомусь вирішили відійти від звичних канонів =). Трохи пізніше я до неї ще повернуся!

Інші приклади з цієї глави можна знайти в моєму репозиторії на GitHub :

  1. перший
  2. другий
  3. третій
  4. четвертий
  5. п'ятий
  6. шостий
  7. Перше практичне завдання
  8. Друге практичне завдання

Основними принципами об'єктно-орієнтованого програмування є інкапсуляція, поліморфізм і успадкування :

Інкапсуляція

- це властивість системи, що дозволяє об'єднати дані і методи, що працюють з ними, в класі і приховати деталі реалізації від користувача. Поліморфізм - це властивість системи використовувати об'єкти з однаковим інтерфейсом без інформації про тип і внутрішню структуру об'єкта. Спадкування - це властивість системи, що дозволяє описати новий клас на основі вже існуючого з частково або повністю запозичує функціональністю. Клас, від якого виробляється спадкування, називається базовим або батьківським. Новий клас - нащадком, спадкоємцем або похідним класом.

На перший погляд ці поняття виглядають жахливо і не зрозуміло, але це тільки на перший погляд!

Простими словами:

Інкапсуляція

- це об'єкт, дані і код для роботи з якими, прихований від тих, хто з усім цим буде працювати. Взаємодія користувача з об'єктом обмежується конкретним визначеним набором дій і правил! Тільки так і ніяк інакше. Поліморфізм - це по суті майже та ж інкапсуляція, різниця полягає в тому, що, маючи схожий інтерфейс взаємодії (дії і правила використання) з об'єктом, його внутрішня реалізація (код) може бути абсолютно різною. Приклад тому кермо автомобіля, у всіх автомобілях круглий, але як саме він працює всередині водій не бачить (на тягах або гідропідсилювачі). Спадкування - найпростіший у розумінні принцип! Все вчили біологію в школі і пам'ятають про видах і підвидах. Тому тут простіше привести приклад. Є рослини, у них є підвиди: дерева, кущі та тд. У них різний зовнішній вигляд, але при цьому всі вони рослини мають листя і коріння!

У розумінні цих принципів і полягає вся суть ООП, ось наприклад, бачення однієї людини ім'я, якого на жаль я зараз не можу згадати (стиль і помилки збережені):

Казка про ООП.
Просто спочатку (коли код писали ще на перфокартах, а трохи пізніше - на асемблері) було лінійне програмування. Коли програма була просто набором команд і виконувалася від початку і до кінця. Природно, були розгалуження всякі, цикли тощо .... Але програма починалася з початку коду, а дані зберігалися в окремій області пам'яті, яка іноді могла перетинатися з областю коду.
Потім, зрозуміли, що одні й ті ж шматки коду часто повторюються ... І придумали виділяти їх в окремі процедури і функції ... Так з'явилося процедурне програмування. Була одна головна процедура (наприклад в С ++ вона так і називається main), яка запускалася при старті програми, а вона вже викликала всі інші процедури. Дані при цьому зберігалися в основному в глобальних змінних. Жити стало трохи легше. Але з ростом розмірів програм, все частіше стали траплятися ситуації, коли якась процедура змінює спосіб взаємодії з якими-небудь глобальними даними таким чином, що це вимагало зміни структури глобальних даних. І такі зміни приводили до того, що інші процедури переставали працювати. Доводилося лазити по всьому коду, вишукуючи де ще можуть використовуватися ці глобальні змінні і виправляти їх. Робота була рутинна. І баги плодилися з немеряних швидкістю .... Плюс була ще одна проблема, коли різні процедури незалежно один від одного змінювали одні і ті ж глобальні змінні, і в самі невідповідні моменти, в цих змінних виявлялися зовсім несподівані значення. Цього роду помилки відловлювати було взагалі важко. Але найважче стало, коли додатки стали багато-і одні і ті ж змінні стали змінюватися паралельними потоками (тобто передбачити поточне значення змінної, дивлячись в код - стало в принципі не можливим) ....
Ось тут-то ті, кому це найбільше набридло, сіли, і придумали ООП.
Вони домовилися. А давайте код групувати в "об'єкти"! І нехай дані об'єкта будуть доступні ТІЛЬКИ йому (так з'явилася Інкапсуляція)! Якщо кому потрібно змінити дані об'єкта, то нехай він звернутися до об'єкта з проханням щось зробити (виклик методу об'єкта) і об'єкт це прохання вже сам обробляє так, як вважає за потрібне.
Ну а далі, коли знову прийшли до того, що при написанні схожих, незначно відрізняються один від одного об'єктів, доводиться багато коду повторювати, придумали Спадкування і поліморфізм.
Казка - брехня! Так в ній натяк! Хто засвоїв - тим урок! ;)

Синтаксис.

Ключем до вивчення будь-якої мови є знання його синтаксису. Це стосується вивчення як іноземних мов, так і мов програмування.

Знаючи алфавіт, ти зможеш читати і писати слова, а розуміючи його граматику, можна писати цілі поеми =)

Точно так само і в мовах програмування, розуміючи основні принципи, можна не тільки писати, читати програмний код, а й ще до його виконання розуміти, яким буде результат його виконання!

На правах "капітана очевидності" скажу, що алфавітом служать латинські символи. Спасибі хоч не китайські ієрогліфи або ще чого, горезвісний мова програмування 1С , Що не доведи господи =))

Далі, по-перше, де ж відбувається вся магія ?! Це можна пояснити на прикладі першої програми в книзі ( її код був приведений вище ). Як я і обіцяв повертаємося до нього =)

class ІмяВашегоКласса {// Його ви придумуєте самі // це головний метод програми, це рядок не змінюється, вона як відправна точка в програмі, саме з нього починається запуск програми public static void main (String [] args) {..... . // А ось тут і відбувається вся магія =)}}

Це слід запам'ятати раз і на завжди як аксіому!

По-друге, список зарезервованих ключових слів:

  1. abstract
  2. assert
  3. boolean
  4. break
  5. byte
  6. case
  7. catch
  8. char
  9. class
  10. const
  11. continue
  12. default
  13. do
  14. double
  15. else
  16. enum
  17. extends
  18. final
  19. finally
  20. float
  21. for
  22. goto
  23. if
  24. implements
  25. import
  26. instanceof
  27. int
  28. interface
  29. long
  30. native
  31. new
  32. package
  33. private
  34. protected
  35. public
  36. return
  37. short
  38. static
  39. strictfp
  40. super
  41. switch
  42. synchronized
  43. this
  44. throw
  45. throws
  46. transient
  47. try
  48. void
  49. volatile
  50. while

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

class Test {public static void main (String [] args) {int goto = 10; System.out.println (goto); }}

Видасть помилку виду:

javac Test.java Test.java:3: error: not a statement int goto = 10; ^ Test.java:3: error: ';' expected int goto = 10; ^ Test.java:5: error: illegal start of expression System.out.println (goto); ^ Test.java:5: error: ';' expected System.out.println (goto); ^ 4 errors

println (goto);  ^ 4 errors

Так само варто відзначити, що ключові слова такі як const і goto зарезервовані, але не використовуються, це так би мовити для любителів бейсика і інших дуже старих мов програмування =)

Так само як імена змінних можна використовувати назви стандартних методів типу println і тд.

І по-третє, правила іменування змінних, методів і класів.

Загальне уявлення про правильне іменування можна знайти в " Угоді з оформлення коду Java ". Але якщо коротко, то змінні:

  1. Ім'я змінної не може починатися в цифр;
  2. Використання допускаються символів знака долара "$" або нижнього підкреслення "_" є негласним правилом поганого тону;
  3. З огляду на, що Java мову не тільки строго типізований, але і регістр залежний, то імена змінних на перший погляд однакові можуть бути різними змінними, наприклад: myvar і Myvar, будуть різними змінними;

Імена методів завжди починаються з маленької літери! Якщо ім'я методу складається з двох слів, то їх на відміну від констант їх не розділяють символом нижнього підкреслення "_", а всього лише пишуть друге слово з великої літери, наприклад myMethod.

З класами все так же, як і з методами, тільки перша буква в імені класу пишеться з великої літери.

Ну і наостанок те, що мені сподобалося в цій книзі! це Контрольні питання і домашнє завдання !

Контрольні питання:

  1. Що таке байт-код і чому він такий важливий для інтернет-програмування на мові Java?

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

  1. Які три ключові принципи об'єктно-орієнтованого програмування?

Відповідь: Поліморфізм, Інкапсуляція, Спадкування.

  1. З чого починається виконання програми на Java?

Відповідь: Виконання програми починається з методу main ()

  1. Що таке змінна?

Відповідь: Мінлива - це іменована осередок пам'яті, розмір пам'яті, виділеної під яку залежить від її типу.

  1. Яке з перерахованих нижче імен змінних неприпустимо:
    1. count +
    2. $ count + (допускається, але є правилом поганого тону)
    3. count27 +
    4. 67count -
  1. Як створюються однорядкові і багаторядкові коментарі?

відповідь:

// Однорядковий коментар / * * Багато рядковий * коментар * /

  1. Як виглядає загальна форма умовного оператора if?

Відповідь: if (умова) оператор;

  1. Як виглядає загальна форма циклу for?

Відповідь: for (ініціалізація; умова; ітерація) оператор;

  1. Як створити блок коду?

Відповідь: Блок коду створюється шляхом укладення одного або більше операторів в фігурні дужки "{}", де перша фігурна дужка є початком блоку коду, а друга його закінченням.

  1. Якщо при введенні коду програми ви допустите помилку, то якого роду повідомлення про помилку отримаєте?

Відповідь: Відповідно до формальних правил, якщо була допущена помилка при наборі програмного коду, то при компіляції вихідного коду в байт-код, компілятор видасть повідомлення про помилку формального зразка з зразковим місцем розташування помилки (при цьому не завжди правильно вкаже на саму помилку, тому довіряти на 100% йому не варто). наприклад:

Example.java:8: ';' expected public static void main (String args []) ^ Example.java: class, interface, or enum expected} ^

  1. Чи має значення, з якої саме позиції в рядку почнеться інструкція?

Відповідь: Ні ні має. Інструкції можуть починатися як з різних рядків, так і знаходиться в одному рядку, єдиною вимогою є наявність ";" в кінці кожної інструкції.

Домашні завдання (лістинг програм і опис алгоритмів без порядкового пояснення рядків коду):

перша програма

/ * * Завдання: * видозмінити програму, створену у вправі 1.2, таким чином, щоб вона виводила таблицю перекладу дюймів в метри. * Виведіть значення довжини до 12 футів через кожен дюйм. Після кожних 12 дюймів виведіть порожній рядок. * (Один метр приблизно дорівнює 39.37 дюйма, в одному футі 12 дюймів) * * Файлу з вихідним кодом назвіть InchesInMeters.java * / class InchesInMeters {public static void main (String [] args) {double meter; int counter; int inch; int foot; counter = 0; // Лічильник що інстанціюється нульовим значенням foot = 12 * 12; // Обчислюємо скільки дюймів в 12 футів for (inch = 1; inch <= foot; inch ++) {meter = inch / 39.37; System.out.println (inch + "дюйму відповідає" + meter + "метра."); counter ++; // Збільшуємо лічильник рядків на 1 на кожній ітерації циклу if (counter == 12) {// Якщо значення лічильника дорівнює 10, вивести порожній рядок System.out.println (); counter = 0; // Скинути лічильник рядків}}}}

Як сказано в умови, програма буде переводити дюйми в метри, аж до 12 футів. А кожні 12 дюймів буде виводиться порожній рядок для візуального поділу!

Алгоритм даної програми досить простий! Насамперед потрібно дізнатися скільки дюймів в 12 футів, потім використовуючи цикл for виводимо на екран скільки метрів в тій або іншій кількості дюймів. Як тільки значення виводиться на екран досягає 12 дюймів, виводиться порожній рядок, для цього використовується вкладене в цикл логічне умова за допомогою оператора if.

Друга програма:

/ * * Завдання: * Сила тяжіння на Місяці становить близько 17% земної. Напишіть програму, яка вирахувала б ваша вага на Місяці. * * Файлу з вихідним кодом назвіть WeightOnTheMoon.java * / class WeightOnTheMoon {public static void main (String [] args) {double my_weight = 82; // Моя вага double moon_gravity = 17; // Сила тяжіння на Місяці double earth_gravity = 100; // Сила тяжіння на Землі double moon_weight; // Змінна яка буде зберігати в собі вагу на Місяці / * Виконуємо розрахунок ваги на Місяці * / moon_weight = (moon_gravity / earth_gravity) * my_weight; / * Виводимо на екран результат * / System.out.print ( "Моя вага на Місяці дорівнює:" + moon_weight + "кг."); }}

У другому домашньому завданні потрібно обчислити вагу людини на Місяці.

Алгоритм цієї програми зводиться до математичних формул! Якщо гравітація на Місяці дорівнює 17% від земної, то потрібно розділити 17 на 100, потім помножити на вагу людини.

Далі залишається тільки вивести на екран повідомлення з вагою людини на Місяці.

Magnum news - Глава №1. основи Java

основи Java

Описувати історію створення мови тут я вже точно не стану, цієї інформації і так досить багато, та й при роботі з мовою програмування Java це навряд чи якось допоможе =)

Максимум, що тут можна сказати, що свого часу ця мова дав великий поштовх для створення динамічної інфраструктури та заклав фундамент для подальшого розвитку інших мов, а також технологій.

У цьому розділі за звичаєм, як і в будь-який інший книзі дається перше уявлення про можливості мови Java:

Як працює мову.

З огляду на історію і час, коли створювався цей мова, а також навіщо! То тут варто відзначити, що мова є кросплатформним, тобто він може працювати на будь-якій платформі (як апаратної, так і операційної), єдиною вимогою є наявність Java Virtual Machine.

Java Virtual Machine(скорочено Java VM, JVM)

- віртуальна машина Java - основна частина виконує системи Java, так званої Java Runtime Environment (JRE). Віртуальна машина Java виконує байт-код Java, попередньо створений з вихідного тексту Java-програми компілятором Java (javac). JVM може також використовуватися для виконання програм, написаних на інших мовах програмування. Наприклад, вихідний код на мові Ada може бути откомпилирован в байт-код Java, який потім може виконатися за допомогою JVM.

Таке визначення дає нам Wikipedia . Якщо ж це перефразувати в більш просту форму, то:

Java Virtual Machine

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

Саме завдяки байт-коду, мова Java може виконуватися на різних платформах, таких як комп'ютери, телевізори, смартфони і навіть тостери (принади розумного будинку). Адже раніше не було єдиного стандарту для процесорів і ОС. Тому нативні мови (ті вихідний текст яких компілювався під конкретну платформу) не могли забезпечити переносимість програм.

Даний процес можна уявити приблизно так:

Вихідний код => Байт-код => JVM => Нативний код

Більш детально це звучить так! Ви пишете програму, потім її компілюєте, але тут процес компіляції не такий як прийнято вважати наприклад, в C ++, тут програма і перетворюється в цей магічний байт-код! Далі природно йде її запуск, саме тут вступає в дію JVM яка перетворює байт-код в нативний код, запускає і виводить результат на ваш екран!

Примітка: файл з вихідним кодом матиме розширення ".java", а файл з байт-кодом буде ".class".

Який моделі програмування дотримується Java.

Java є об'єктно-орієнтованою мовою програмування!

Об'єктно-орієнтоване програмування(ООП)

- методологія програмування, заснована на представленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію спадкування.

Тобто всі програми без винятку мають хоча б один клас і метод! наприклад:

/ * * Це приклад простої програми на Java. * Дайте файлу з вихідним кодом ім'я Example.java * / class Example {public static void main (String [] args) {System.out.println ( "Java править Інтернетом!"); }}

Це перша програма в книзі, зазвичай там пишуть усталену фразу "Hello World", але тут чомусь вирішили відійти від звичних канонів =). Трохи пізніше я до неї ще повернуся!

Інші приклади з цієї глави можна знайти в моєму репозиторії на GitHub :

  1. перший
  2. другий
  3. третій
  4. четвертий
  5. п'ятий
  6. шостий
  7. Перше практичне завдання
  8. Друге практичне завдання

Основними принципами об'єктно-орієнтованого програмування є інкапсуляція, поліморфізм і успадкування :

Інкапсуляція

- це властивість системи, що дозволяє об'єднати дані і методи, що працюють з ними, в класі і приховати деталі реалізації від користувача. Поліморфізм - це властивість системи використовувати об'єкти з однаковим інтерфейсом без інформації про тип і внутрішню структуру об'єкта. Спадкування - це властивість системи, що дозволяє описати новий клас на основі вже існуючого з частково або повністю запозичує функціональністю. Клас, від якого виробляється спадкування, називається базовим або батьківським. Новий клас - нащадком, спадкоємцем або похідним класом.

На перший погляд ці поняття виглядають жахливо і не зрозуміло, але це тільки на перший погляд!

Простими словами:

Інкапсуляція

- це об'єкт, дані і код для роботи з якими, прихований від тих, хто з усім цим буде працювати. Взаємодія користувача з об'єктом обмежується конкретним визначеним набором дій і правил! Тільки так і ніяк інакше. Поліморфізм - це по суті майже та ж інкапсуляція, різниця полягає в тому, що, маючи схожий інтерфейс взаємодії (дії і правила використання) з об'єктом, його внутрішня реалізація (код) може бути абсолютно різною. Приклад тому кермо автомобіля, у всіх автомобілях круглий, але як саме він працює всередині водій не бачить (на тягах або гідропідсилювачі). Спадкування - найпростіший у розумінні принцип! Все вчили біологію в школі і пам'ятають про видах і підвидах. Тому тут простіше привести приклад. Є рослини, у них є підвиди: дерева, кущі та тд. У них різний зовнішній вигляд, але при цьому всі вони рослини мають листя і коріння!

У розумінні цих принципів і полягає вся суть ООП, ось наприклад, бачення однієї людини ім'я, якого на жаль я зараз не можу згадати (стиль і помилки збережені):

Казка про ООП.
Просто спочатку (коли код писали ще на перфокартах, а трохи пізніше - на асемблері) було лінійне програмування. Коли програма була просто набором команд і виконувалася від початку і до кінця. Природно, були розгалуження всякі, цикли тощо .... Але програма починалася з початку коду, а дані зберігалися в окремій області пам'яті, яка іноді могла перетинатися з областю коду.
Потім, зрозуміли, що одні й ті ж шматки коду часто повторюються ... І придумали виділяти їх в окремі процедури і функції ... Так з'явилося процедурне програмування. Була одна головна процедура (наприклад в С ++ вона так і називається main), яка запускалася при старті програми, а вона вже викликала всі інші процедури. Дані при цьому зберігалися в основному в глобальних змінних. Жити стало трохи легше. Але з ростом розмірів програм, все частіше стали траплятися ситуації, коли якась процедура змінює спосіб взаємодії з якими-небудь глобальними даними таким чином, що це вимагало зміни структури глобальних даних. І такі зміни приводили до того, що інші процедури переставали працювати. Доводилося лазити по всьому коду, вишукуючи де ще можуть використовуватися ці глобальні змінні і виправляти їх. Робота була рутинна. І баги плодилися з немеряних швидкістю .... Плюс була ще одна проблема, коли різні процедури незалежно один від одного змінювали одні і ті ж глобальні змінні, і в самі невідповідні моменти, в цих змінних виявлялися зовсім несподівані значення. Цього роду помилки відловлювати було взагалі важко. Але найважче стало, коли додатки стали багато-і одні і ті ж змінні стали змінюватися паралельними потоками (тобто передбачити поточне значення змінної, дивлячись в код - стало в принципі не можливим) ....
Ось тут-то ті, кому це найбільше набридло, сіли, і придумали ООП.
Вони домовилися. А давайте код групувати в "об'єкти"! І нехай дані об'єкта будуть доступні ТІЛЬКИ йому (так з'явилася Інкапсуляція)! Якщо кому потрібно змінити дані об'єкта, то нехай він звернутися до об'єкта з проханням щось зробити (виклик методу об'єкта) і об'єкт це прохання вже сам обробляє так, як вважає за потрібне.
Ну а далі, коли знову прийшли до того, що при написанні схожих, незначно відрізняються один від одного об'єктів, доводиться багато коду повторювати, придумали Спадкування і поліморфізм.
Казка - брехня! Так в ній натяк! Хто засвоїв - тим урок! ;)

Синтаксис.

Ключем до вивчення будь-якої мови є знання його синтаксису. Це стосується вивчення як іноземних мов, так і мов програмування.

Знаючи алфавіт, ти зможеш читати і писати слова, а розуміючи його граматику, можна писати цілі поеми =)

Точно так само і в мовах програмування, розуміючи основні принципи, можна не тільки писати, читати програмний код, а й ще до його виконання розуміти, яким буде результат його виконання!

На правах "капітана очевидності" скажу, що алфавітом служать латинські символи. Спасибі хоч не китайські ієрогліфи або ще чого, горезвісний мова програмування 1С , Що не доведи господи =))

Далі, по-перше, де ж відбувається вся магія ?! Це можна пояснити на прикладі першої програми в книзі ( її код був приведений вище ). Як я і обіцяв повертаємося до нього =)

class ІмяВашегоКласса {// Його ви придумуєте самі // це головний метод програми, це рядок не змінюється, вона як відправна точка в програмі, саме з нього починається запуск програми public static void main (String [] args) {..... . // А ось тут і відбувається вся магія =)}}

Це слід запам'ятати раз і на завжди як аксіому!

По-друге, список зарезервованих ключових слів:

  1. abstract
  2. assert
  3. boolean
  4. break
  5. byte
  6. case
  7. catch
  8. char
  9. class
  10. const
  11. continue
  12. default
  13. do
  14. double
  15. else
  16. enum
  17. extends
  18. final
  19. finally
  20. float
  21. for
  22. goto
  23. if
  24. implements
  25. import
  26. instanceof
  27. int
  28. interface
  29. long
  30. native
  31. new
  32. package
  33. private
  34. protected
  35. public
  36. return
  37. short
  38. static
  39. strictfp
  40. super
  41. switch
  42. synchronized
  43. this
  44. throw
  45. throws
  46. transient
  47. try
  48. void
  49. volatile
  50. while

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

class Test {public static void main (String [] args) {int goto = 10; System.out.println (goto); }}

Видасть помилку виду:

javac Test.java Test.java:3: error: not a statement int goto = 10; ^ Test.java:3: error: ';' expected int goto = 10; ^ Test.java:5: error: illegal start of expression System.out.println (goto); ^ Test.java:5: error: ';' expected System.out.println (goto); ^ 4 errors

println (goto);  ^ 4 errors

Так само варто відзначити, що ключові слова такі як const і goto зарезервовані, але не використовуються, це так би мовити для любителів бейсика і інших дуже старих мов програмування =)

Так само як імена змінних можна використовувати назви стандартних методів типу println і тд.

І по-третє, правила іменування змінних, методів і класів.

Загальне уявлення про правильне іменування можна знайти в " Угоді з оформлення коду Java ". Але якщо коротко, то змінні:

  1. Ім'я змінної не може починатися в цифр;
  2. Використання допускаються символів знака долара "$" або нижнього підкреслення "_" є негласним правилом поганого тону;
  3. З огляду на, що Java мову не тільки строго типізований, але і регістр залежний, то імена змінних на перший погляд однакові можуть бути різними змінними, наприклад: myvar і Myvar, будуть різними змінними;

Імена методів завжди починаються з маленької літери! Якщо ім'я методу складається з двох слів, то їх на відміну від констант їх не розділяють символом нижнього підкреслення "_", а всього лише пишуть друге слово з великої літери, наприклад myMethod.

З класами все так же, як і з методами, тільки перша буква в імені класу пишеться з великої літери.

Ну і наостанок те, що мені сподобалося в цій книзі! це Контрольні питання і домашнє завдання !

Контрольні питання:

  1. Що таке байт-код і чому він такий важливий для інтернет-програмування на мові Java?

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

  1. Які три ключові принципи об'єктно-орієнтованого програмування?

Відповідь: Поліморфізм, Інкапсуляція, Спадкування.

  1. З чого починається виконання програми на Java?

Відповідь: Виконання програми починається з методу main ()

  1. Що таке змінна?

Відповідь: Мінлива - це іменована осередок пам'яті, розмір пам'яті, виділеної під яку залежить від її типу.

  1. Яке з перерахованих нижче імен змінних неприпустимо:
    1. count +
    2. $ count + (допускається, але є правилом поганого тону)
    3. count27 +
    4. 67count -
  1. Як створюються однорядкові і багаторядкові коментарі?

відповідь:

// Однорядковий коментар / * * Багато рядковий * коментар * /

  1. Як виглядає загальна форма умовного оператора if?

Відповідь: if (умова) оператор;

  1. Як виглядає загальна форма циклу for?

Відповідь: for (ініціалізація; умова; ітерація) оператор;

  1. Як створити блок коду?

Відповідь: Блок коду створюється шляхом укладення одного або більше операторів в фігурні дужки "{}", де перша фігурна дужка є початком блоку коду, а друга його закінченням.

  1. Якщо при введенні коду програми ви допустите помилку, то якого роду повідомлення про помилку отримаєте?

Відповідь: Відповідно до формальних правил, якщо була допущена помилка при наборі програмного коду, то при компіляції вихідного коду в байт-код, компілятор видасть повідомлення про помилку формального зразка з зразковим місцем розташування помилки (при цьому не завжди правильно вкаже на саму помилку, тому довіряти на 100% йому не варто). наприклад:

Example.java:8: ';' expected public static void main (String args []) ^ Example.java: class, interface, or enum expected} ^

  1. Чи має значення, з якої саме позиції в рядку почнеться інструкція?

Відповідь: Ні ні має. Інструкції можуть починатися як з різних рядків, так і знаходиться в одному рядку, єдиною вимогою є наявність ";" в кінці кожної інструкції.

Домашні завдання (лістинг програм і опис алгоритмів без порядкового пояснення рядків коду):

перша програма

/ * * Завдання: * видозмінити програму, створену у вправі 1.2, таким чином, щоб вона виводила таблицю перекладу дюймів в метри. * Виведіть значення довжини до 12 футів через кожен дюйм. Після кожних 12 дюймів виведіть порожній рядок. * (Один метр приблизно дорівнює 39.37 дюйма, в одному футі 12 дюймів) * * Файлу з вихідним кодом назвіть InchesInMeters.java * / class InchesInMeters {public static void main (String [] args) {double meter; int counter; int inch; int foot; counter = 0; // Лічильник що інстанціюється нульовим значенням foot = 12 * 12; // Обчислюємо скільки дюймів в 12 футів for (inch = 1; inch <= foot; inch ++) {meter = inch / 39.37; System.out.println (inch + "дюйму відповідає" + meter + "метра."); counter ++; // Збільшуємо лічильник рядків на 1 на кожній ітерації циклу if (counter == 12) {// Якщо значення лічильника дорівнює 10, вивести порожній рядок System.out.println (); counter = 0; // Скинути лічильник рядків}}}}

Як сказано в умови, програма буде переводити дюйми в метри, аж до 12 футів. А кожні 12 дюймів буде виводиться порожній рядок для візуального поділу!

Алгоритм даної програми досить простий! Насамперед потрібно дізнатися скільки дюймів в 12 футів, потім використовуючи цикл for виводимо на екран скільки метрів в тій або іншій кількості дюймів. Як тільки значення виводиться на екран досягає 12 дюймів, виводиться порожній рядок, для цього використовується вкладене в цикл логічне умова за допомогою оператора if.

Друга програма:

/ * * Завдання: * Сила тяжіння на Місяці становить близько 17% земної. Напишіть програму, яка вирахувала б ваша вага на Місяці. * * Файлу з вихідним кодом назвіть WeightOnTheMoon.java * / class WeightOnTheMoon {public static void main (String [] args) {double my_weight = 82; // Моя вага double moon_gravity = 17; // Сила тяжіння на Місяці double earth_gravity = 100; // Сила тяжіння на Землі double moon_weight; // Змінна яка буде зберігати в собі вагу на Місяці / * Виконуємо розрахунок ваги на Місяці * / moon_weight = (moon_gravity / earth_gravity) * my_weight; / * Виводимо на екран результат * / System.out.print ( "Моя вага на Місяці дорівнює:" + moon_weight + "кг."); }}

У другому домашньому завданні потрібно обчислити вагу людини на Місяці.

Алгоритм цієї програми зводиться до математичних формул! Якщо гравітація на Місяці дорівнює 17% від земної, то потрібно розділити 17 на 100, потім помножити на вагу людини.

Далі залишається тільки вивести на екран повідомлення з вагою людини на Місяці.

Якщо при введенні коду програми ви допустите помилку, то якого роду повідомлення про помилку отримаєте?
Якщо при введенні коду програми ви допустите помилку, то якого роду повідомлення про помилку отримаєте?
Якщо при введенні коду програми ви допустите помилку, то якого роду повідомлення про помилку отримаєте?

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: