Метод main

Деталі запуску Java-додатків можуть відрізнятися для різних систем, але завжди необхідно вказати імя класу, який керує роботою програми При запуску програми на Java система знаходить і запускає метод main цього класу повинен бути оголошений як public, static і void (тобто не повертає ніякого значення), і йому повинен передаватися один аргумент типу String [] Наведемо приклад методу main, що виводить значення своїх параметрів:

class Echo {

public static void main(String[] args) {

for (int i = 0 i &lt argslength i++) Systemoutprint(args[i] = “ ”)

Systemoutprintln()

}

}

У масиві рядків містяться аргументи програми. Найчастіше вони вводяться користувачем при запуску програми Наприклад, в системі з використанням командного рядка – такий, як UNIX або DOS Shell, – додаток Echo може бути викликане наступним чином:

java Echo in here

У цій команді java є інтерпретатором байт-коду Java, Echo – імя класу, а інші параметри являють собою аргументи програми Команда java знаходить відкомпільований байт-код класу Echo, завантажує його у віртуальну машину і викликає метод Echomain з аргументами, що містяться в елементах масиву String Результат роботи програми буде наступним:

in here

Імя класу не включається в число рядків, переданих main Воно відоме заздалегідь,

оскільки це імя класу додатки

Додаток може містити кілька методів main, оскільки кожен з його класів може мати такий метод Проте в кожній програмі використовується всього один метод main, що указується при запуску, – в наведеному вище прикладі це був метод класу Echo Присутність декількох методів main має позитивний ефект – кожен клас може мати метод main, призначений для перевірки його власного коду, що дає чудову можливість для модульного тестування класу Ми рекомендуємо користуватися подібною технікою в ваших програмах / присутня в багатьох прикладах, наведених у цій книзі Обмежений обсяг не дозволяє нам приводити метод main для кожного прикладу, але зазвичай ми використовуємо цей метод при розробці власних класів для нетривіальних додатків і бібліотек /

Вправа 214

Змініть метод Vehiclemain так, щоб він створював обєкти-машини для власників,

чиї імена зазначені в командному рядку, і виводив інформацію про нові обєкти

212 Метод toString

Якщо обєкт включає загальнодоступний (public) метод toString, який не отримує параметрів і повертає обєкт String, то даний метод викликається кожного разу, коли обєкт цього типу зустрічається замість рядка в операторі + або + = Наприклад, наступний фрагмент виводить вміст масиву небесних тіл:

static void displayBodies(Body[] bodies) {

for (int i = 0 i &lt bodieslength i++) Systemoutprintln(i + “: ” + bodies[i])

}

Якщо уважніше придивитися до виклику println, можна виявити два неявних приведення до строковим значенням: перше – для індексу i і друге – для обєкта Body Значення всіх примітивних типів неявно перетворюються в обєкти String при використанні в подібних виразах

У Java не існує універсального механізму для перетворення значення типу String в обєкт Зрозуміло, ви можете включити в клас свою власну функцію для подібного приведення Зазвичай для цього використовується якийсь аналог методу fromString, що змінює поточний стан обєкта, або конструктор, що приймає параметр типу String, який визначає початковий стан обєкта

Вправа 215

Включіть в клас Vehicle метод toString

Вправа 216

Включіть в клас LinkedList метод toString

213 Рідні методи

Якщо вам знадобилося написати на Java програму, в якій повинен використовуватися код, написаний на іншій мові програмування, або якщо вам доводиться безпосередньо працювати з якою-небудь апаратурою, можна вдатися до допомоги рідних (native) методів Рідний метод може викликатися з програми на Java, але пишеться він на рідному

мовою – зазвичай на C або C + +

При використанні рідних методів про переносимість і надійності програми говорити не доводиться Наприклад, рідні методи не можна застосовувати в коді, який повинен пересилатися по мережі і виконуватися на іншому компютері (скажімо, в аплетах) – його архітектура може відрізнятися від вашої, але навіть якщо вони і збігаються, віддалений компютер може просто не довіряти вашій системі настільки, щоб дозволити запускати у себе Відкомпілювати програму на C

Відомості, що стосуються написання рідних методів, наведені у Додатку A

Глава 3

РОЗШИРЕННЯ КЛАСІВ

Ви зрозумієте мене, якщо я скажу, що можу простежити свій родовід аж до частинок первинної протоплазми

Гільберт і Салліван, The Mikado

Під час екскурсії ми коротко познайомилися з тим, як відбувається розширення, Або субклассірованіе, Завдяки якому розширений клас може використовуватися замість вихідного Така можливість носить назву поліморфізму – Це означає, що обєкт даного класу може у кількох видах, або самостійно, або в якості обєкта расширяемого їм суперкласу Клас по відношенню до Розширюється їм класу називається подклассом, Або розширеним класом розширюваний клас, у свою чергу, називається суперкласом

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

Джерело: Арнольд К, Гослінг Д – Мова програмування Java (1997)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*