МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САП
Технологія программування і відлагоджування програм на мові Java.
Методичні матеріали
до лабораторної роботи № 1 з курсу:
“Об’єктно-орієнтоване програмування”
для студентів базового напрямку
6.0804 “Комп’ютерні науки”
ЗАТВЕРДЖЕНО
на засіданні кафедри
“Системи автоматизованого проектування”
Протокол №
від
ЛЬВІВ 2007
Технологія программування і відлагоджування програм на мові Java. Методичні матеріали до лабораторної роботи № 1 з курсу: “Об’єктно-орієнтоване програмування” для студентів базового напрямку 6.0804 “Комп’ютерні науки”.
Укладачі:
Макар В.М., доцент, к.т.н.
Загарюк Р.В., асистент.
Відповідальний за випуск:
Рецензенти:
1. МЕТА РОБОТИ
Ознайомитися з технологією програмування і відлагоджування програм з використанням пакета SDK фірми Sun.
2.ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1. ОСНОВНІ ЕЛЕМЕНТИ МОВИ JAVA
Всі Java-програми містять в собі чотирі основні елементи:
класи (classes) – елементи програми, що містять в собі змінні та методи;
інтерфейси (interfaces) – різновид класів, який виокритосвується в спеціальних випадках (реалізація множинного наслідування і протоколів);
змінні (variables) – елементи програми, в яких зберігаються дані;
методи (methods) – елементи програми, які виконують дії над над даними (аналогічні функціям процедурам і підпрограмам в інших мовах програмування);
пакети (packages) – група зв’язаних по змісту класів та інтерфейсів.
Для того, щоб використовувати класи та інтерфейси, що містяться в пакетах, необхідно зробити їх доступними в програмі на мові Java. Для цього використовується оператор чи оператори import з іменем пакету та іменем класу даного пакету, що буде використовуватись, наприклад:
import java.util.Date;
виконує імпорт класу Date з пакету java.util.
Якщо необхідно використовувати декілька класів чи інтерфейсів з пакету, зазвичай замість імені класу чи інтерфейсу ставиться символ "*", що вказує на те, що в даній програмі доступні всі класи та інтерфейси даного пакету, наприклад:
import java.awt.*;
виконує імпорт всіх класів з пакету java.awt.
Варто відмітити, що імпорт пакету java.lang задавати не треба, оскільки цей пакет імпортується в програми на мові Java по замовчуванню.
2.2.СТРУКТУРА ПРОГРАМИ JAVA І ПРОСТИЙ ВВІД-ВИВІД
Якщо програма є додатком, вона повинна містити у файлі оголошення класу, ім'я якого співпадає з ім'ям файлу програми, та статичний public-метод з ім'ям main, який не повертає значення:
public final static void main(String args[])
{
методу тіла
}
Цей метод запускається першим при виконанні програми. У масиві рядкових змінних args в програму передаються параметри, задані при запуску програми (перший параметр - в нульовому елементі масиву, другий в першому і т.д.). Опис масиву в параметрах методу main є обов'язковим, навіть якщо параметри не обробляються в програмі.
Параметри, що задаються в командному рядку, можна використовувати для введення даних в програму. Параметри, що вводяться, відділяються один від одного, принаймні, одним пропуском. Якщо параметри, що вводяться, містять пропуски, то параметри полягають в подвійні апострофи (") (ці апострофи не передаються програмі Java). Якщо в параметрі, поміщеному в подвійні апострофи, необхідно задати символ подвійного апострофа, то усередині параметра він записується як (\").
Якщо як параметр задається символ зірочки (*), то програмі передаються імена файлів поточного каталога (кожне ім'я як окремий параметр). Якщо необхідно передати зірочку як значення параметра, її необхідно також укласти в подвійні апострофи.
Для виведення результатів виконання програми і діагностичних повідомлень на дисплей в класі System пакету java.lang описані два потокові об'єкти класу PrintStream:
public static final PrintStream out
і
public static final PrintStream err
Оскільки це статичні об'єкти, їх можна використовувати в програмах, не створюючи власних потокових об'єктів, і в той же час їм доступні методи класу для виведення даних (звичайно використовуються методи print() і println()).
При виклику методів print() і println() може бути заданий аргумент типу String, char char[], int, long, float, double, boolean і Object.
Єдина відмінність між методами print() і println() полягає в тому, що останній завжди додає символ перекладу рядка до всього, що друкує, а перший залишається на тому ж рядку. Якщо потрібно перейти на новий рядок, можна викликати println() без параметрів.
Виконання програми закінчується, коли виконаний останній оператор програми або якщо в програмі відбулася помилка (в цьому випадку об'єкт System.err виводить на дисплей діагностичні повідомлення).
Виконання програми можна також завершити за допомогою наступного методу класу System:
public static void exit(int status)
Параметр status задає значення коду завершення програми. За умовчанням програма закінчується з нульовим кодом завершення. Можна вказати ненульовий код завершення, який може бути проаналізований операційною системою або командним файлом.
2.3. ВСТАНОВЛЕННЯ SDK І СКЛАД SDK
Встановлення проводиться автоматично і єдині параметри, котрі необхідно вказати – це місце розміщення та і‘мя пакету, а також компоненти, що будуть встановлюватись.
Також при встановленні створюються наступні підкаталоги:
bin – виконувані модулі та утиліти SDK;
demo – демонстраційні приклади;
include – файли заголовків C та C++, які використовуються для побудови середовища Java;
lib – бібліотеки та архіви (в форматах .lib, .zip, та .jar), які використовуються SDK;
src – вихідний код бібліотек Java (якщо цей компонент включений).
Для того, щоб виконувані модулі та утиліти пакету SDK могли запускатися з любого каталога без вказування шляху до них, необхідно додати в параметр команди PATH в autoexec.bat шлях до каталогу bin, наприклад: c:\jdk1.3\bin\ (або додати її вручну у змінні середовища);
Крім того, Java використовує змінну середовища CLASSPATH для вказування шляху до класів Java. Якщо SDK встановлений в каталог по замовчуванню, то змінну СLASSPATH можно не встановлювати, інакше ж її необхідно встановити в autoexec.bat за допомогою команди SET CLASSPATH=і’мя-каталога
2.4. ТЕХНОЛОГІЯ ПРОГРАМУВАННЯ НА МОВІ JAVA З ВИКОРИСТАННЯМ SDK
Текст програми на мові Java перетворюється в спеціальні команди (байт-коди) віртуальної машини Java, які не залежать від конкретної комп’ютерної платформи та операційної системи. У свою чергу, при виконанні програми, байт-коди перетворюються в команди процесора та одразу ж виконуються (режим інтерпретації).
Слід звернути увагу на те, що під час компіляції вказується повне і‘мя файлу з текстом програми (з розширенням .java), а при запуску інтерпретатора - і‘мя файлу, який містить байт-коди.
Файли компілятору javac.exe та інтерпретатора java.exe знаходяться у підкаталозі bin каталогу, який містить SDK, і є програмами, які виконується в режимі командного інтерпретатора (Windows NT/2000/XP/2003) чи MS DOS (Windows 95/98).
Команда запуску програми javac має такий вигляд:
javac [опції] [вихідні файли] [@файли]
Вказані аргументи можуть йти в довільному порядку.
Якщо виконується компіляція одного чи декількох вихідних файлів, їх можно просто задати в командній стрічці, відділив їх один від одного пробілами. Іншим рішенням є запис імен файлів, що будуть компілюватися, в окремому файлі і вказати імя цього файлу в параметрі @файлы.
Основні опції програми javac наведені нижче:
classpath – встановлення шляху до каталогів, де розміщуються класи користувача;
sourcepath – встановлення шляху до каталогів, де розміщуються вихідні файли користувача;
d каталог – вказування каталогу, в якому будуть міститися відкомпільовані програми;
g – вивід усієї відлагоджувальної інформації файли, включаючи локальні змінні;
verbose – вивід інформації про кожний завантажений клас, та кожний відкомпільований вихідний файл.
Команда запуску програми java має такий вигляд:
java [опції] клас [параметри ...]
java [опції] -jar і’мя-jar-файлу [параметри ...]
Клас – це ім’я класу (без розширення .class), який має бути виконаний.
І’мя-jar-файлу – і’мя архіву, де знаходиться клас, який має бути виконаний (використовується тільки разом із опцією -jar).
Параметри – параметри командної стрічки, які передаються в метод main (відділяються один від одного пробілами).
Основні опції програми java наведені нижче:
classpath або cp – встановлення шляху до каталогів, де розміщуються класи користувача;
showversion – вивід повідомлення про версію та продовження роботи;
verbose або (verboseclass) – вивід інформації про кожний завантажений клас.
2.5. ОФОРМЛЕННЯ ПРОГРАМИ
Елементами програми є: ключові слова, ідентифікатори, константи (литерали), розділювачі та операції. Символи верхнього та нижнього регістру в ключових словах та ідентифікаторах вважаються різними символами.
У специфікації Java 2 визначені такі ключові слова:
abstract
default
if
private
this
boolean
do
implements
protected
throw
break
double
import
public
throws
byte
else
instanceof
return
transient
case
extends
int
short
try
catch
final
interface
static
void
char
finally
long
strictfp
volatile
class
float
native
super
while
const
for
new
switch
continue
goto
package
synchronized
Ключові слова const та goto не використовуються у Java. Вони введені лише для того, щоб згенерувати повідомлення про помилку при появі цих ключових слів C++ в програмі.
Ідентифікаторами називають імена, які присвоюють різними елементам програми. Ідентифікатори на мові Java будуються із символів стандарту Unicode. Кожний символ по стандарту Unicode кодується 16 бітами (2 байта), на відміну від стандарту ASCII, який використовує 8-бітове кодування (1 байт). Ідентификаторы повинні складатися з букв та цифр (без пробілів), причому першим символом не повинна бути цифра. Ідентифікатори не повинні співпадати з ключовими словами, булівськими константами true та false, а також змінною null. Ідентифікатор також може мати довільну довжину. Крім того, для сумісності з різними версіями Java дозволяється використовувати в імені ідентифікатора символ підкреслення "_" та символ долара "$".
Константи представляють значення одного з примітивних типів, типу String (строкові константи). Значення null такожж є константою.
Розділювачами в Java є такі символи (в лапках): “(“,”)”,”{“,”}”,”[“,”]”,”;”,”.”.
Операції Java – це символи унарних і бінарних операцій (арифметичних, логічних, операцій відношення та присвоювання), символы складних операцій (напркилад "+="), а також символи терарного оператору "?" та ":".
В одній стрічці може міститися декілька операторів. Оператор може займати декілька стрічок, причому перенос на нову стрічку можна робити лише в тому місці оператору, де знаходиться пробіл чи символ-розділювач (до чи після цього символу). Признаком кінця оператору є символ ";".
Оператори Java, як і оператори мови C, можуть утворювати блоки. Оператори блоку знаходяться в межах символів "{" та "}". Символ ";" після завершення блоку (символу "}") ставити не треба.
Коментарі на мові Java можна оформляти одним з наступних способів:
1. /* текст */
Весь текст, який знаходиться між цими символами, буде проігнорований. Такий коментар може розповсюджуватися на декілька стрічок.
2. // текст
Весь текст, який слідує після символів "//" до кінця стрічки, ігнорується.
3. РОБОТА З ECLIPSE
3.1. СТВОРЕННЯ НОВОГО ПРОЕКТУ В СЕРЕДОВИЩІ ECLIPSE
Eclipse – це візуальне середовище для розробки програм на мові Java. Для того, щоб почати розробку Java програми у Eclipse потрібно спочатку створити проект, вибравши підменю File\New\Project (Рис. 1).
Рис.1. Створення нового проекту в Eclipse
Рис.2. Вибір типу проекту
Після чого відкриється майстер створення проекту, в якому послідовно необхідно вказати наступну інформацію:
Тип проекту – Java Project (Рис. 2)
Вказати назву проекту (Рис. 3)
Рис.3 Вибір назви проекту
Рис.4 Зміна опцій проекту на етапі створення
- На наступній сторінці майстра можна змінити різноманітні опції проекту (залиште без змін) (Рис. 4).
- Для закінчення створення проекту натисніть Завершити (Finish) у вікні майстра, і Так (Yes) на запит про перехід до робочої області новоствореного проекту
3.2. СТВОРЕННЯ НОВОГО КЛАСУ В СЕРЕДОВИЩІ ECLIPSE
Почніть створення нового класу у проекті з вибору у вспливаючому меню New\Class (Рис. 5).
Після чого відкриється майстер створення класу (Рис. 6), у якому необхідно вказати наступну інформацію:
Назва класу
Перевріте, щоб стояла галочка навпроти стоврення заглушки для методу main (public static void main(String[] args))
Решту характеристик залиште без змін
Тепер ваша програма має мати такий вигляд як на Рис. 7:
Рис.5 Створення нового класу
Рис.6 Зміна характеристик нового класу
Рис.7 Вікно Eclipse після створення нового класу
Рис.8 Вікно Eclipse після створення виконання програми
3.3. РЕДАГУВАННЯ ТА ЗАПУСК ПРОГРАМИ НА ВИКОНАННЯ
Для того, щоб побачити, які файли входять у проект викличте навігатор файлів (Рис. 9). Для того щоб отримати інформацію про місцезнаходження ваших файлів на диску натисніть праву клавішу мишки на імені проекту у навігаторі та викличіть підменю Properties. Пункт Loсation буде містити потрібну вам інформацію (Рис. 10).
У новоствореному класі додайте наступну стрічку в методі main (Рис. 8):
System.out.println(“Roman Zaharyuk”);
Після чого збережіть проект використовуючи підменю File\Save. Для запуску програми виберіть підменю Run\Run.
Рис.9. Виклик навігатора
Рис.10. Вікно властивостей проекту
4. РОБОТА В КОМАНДНІЙ СТРІЧЦІ
4.1 ЗАДАННЯ ПАРАМЕТРІВ КОМАНДНОЇ СТРІЧКИ ДЛЯ ВІДЛАГОДЖУВАННЯ
Для відлагоджування програми у середовищі Eclipse параметри командної стрічки можна задати у вікні запуску програми (Рис. 11) на вкладці Arguments, вказуючи їх через пробіл (Рис. 12). Після того натисніть Run і програма буде використовувати параметри, вказані у вікні запуску.
Рис.11. Виклик вікна запуску програми
Рис.12. Задання параметрів командної стрічки у середовищі Eclipse
Для виводу параметрів змініть код програми, щоб він мав наступний вигляд (Рис. 13)
Рис.13. Вивід параметрів командної стрічки
4.2 ЗАПУСК ПРОГРАМИ НА ВИКОНАННЯ ІЗ КОМАНДНОЇ СТРІЧКИ
Для запуску командної стрічки виберіть Start\Run та вкажіть cmd.exe для виконання.
Після чого перейдіть до каталогу, де знаходиться байт-код (файл із розширенням class) вашого проекту за допомогою команди
cd <Повний шлях до каталогу вашого проекту>\bin
Та виконайте інтерпретатором байт-код, вказуючи аргументи командної стрічки (Рис. 14).
Рис.14. Робота в командній стрічці
5.КОНТРОЛЬНІ ЗАПИТАННЯ
Які основні елементи містить програма на мові Java?
Як програма на мові Java отримує доступ до класів того чи іншого пакету?
Як виконується інсталяція пакету Java 2 SDK?
Як визначається доступ до виконуваних модулів та утиліт SDK, а також до каталогів класів програм на мові Java?
Як виконується компіляція програми на мові Java?
Як запустити відкомпільовану програму Java на виконання?
Як створити новий проект в середовищі Eclipse
6.ЛАБОРАТОРНЕ ЗАВДАННЯ
Ознайомитися з технологією програмування та оформлення програм на мові Java.
Створити новий проект в середовищі Eclipse.
Створити клас у новоствореному проекті
Додати у метод main функціональність для виводу прізвища та імені
Додати у метод main функціональність для виводу параметрів командної строки
Виконати компіляцію програми та запустити на виконання.
Виконати програму із командної строки
5.ЗМІСТ ЗВІТУ
Мета роботи.
Короткі теоретичні відомості.
Аналіз результатів та висновки.
6.СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ
Bruce Eckel, Thinking in Java, 2nd Edition, 2000.
Christopher Batty and David Scuse, Installing Eclipse. Department of Computer Science, University of Manitoba, Winnipeg, Manitoba, Canada, 2003.