instrukcja_jpwp_cw_1.doc

(162 KB) Pobierz
Wymagania dotyczące uczestników ćwiczenia:

Politechnika Gdańska

Wydział Elektroniki, Telekomunikacji i Informatyki

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Języki programowania wysokiego poziomu (JPWP)

 

 

 

Ćwiczenie 1:

Wprowadzenie do języka programowania Java

 

 

 

 

 

Opracowanie:

dr inż. Jacek Rumiński

Katedra Inżynierii Biomedycznej

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Gdańsk, 2004

 


Opis ćwiczenia laboratoryjnego – JPWP

 

 

 

1. WPROWADZENIE. CEL LABORATORIUM.

 

 

Wymagania dotyczące uczestników ćwiczenia:

-          znajomość podstaw programowania strukturalnego (C),

-          znajomość podstaw programowania obiektowego (C++),

-          znajomość podstaw programowania w języku JAVA (pierwsze dwa wykłady);

-          umiejętność twórczego myślenia.

 

Stosowane technologie i narzędzia w ćwiczeniu:

-          Java – Sun JDK 1.5,

-          Edytor kodu – JCreator,

-          Konsola systemu operacyjnego (konsola/terminal DOS, WIN).

 

Materiały wprowadzające i pomocnicze:

-          Bruce Eckel, Thinking in Java (edycja polska), Helion 2003,

-          Dokumentacja API – Sun JDK 1.5 (wersja HTML, dostępna w czasie laboratorium),

-          Specyfikacja języka Java – http://java.sun.com,

-          Materiały i wiedza z wykładów;

-          Jacek Rumiński, Programowanie uniwersalne, Jacek Rumiński/ACTEN, Gdańsk 2004.

 

Cel laboratorium:

 

Celem ćwiczenia jest praktyczne zapoznanie studentów z podstawą modelowania obiektowego w Javie oraz zasadami tworzenia programów – aplikacji i apletów. Zaprezentowane zostaną zasadnicze elementy specyfikacji języka Java, w tym: zasady konstrukcji kodu, instrukcje sterujące, itp. Po realizacji ćwiczenia student powinien zdobyć podstawową umiejętność samodzielnego napisania, skompilowania i uruchomienia programu w Javie.

 

 

2. PRZEBIEG LABORATORIUM

 

Ramowy program ćwiczenia (łączny czas pracy 2h15min – 3 godziny lekcyjne):

I. Wprowadzenie kierownika ćwiczenia. Zapoznanie się uczestników ze środowiskiem, przegląd dokumentacji (15 min.).

II. Konstrukcja klas w Javie – interpretacja przykładowego kodu klasy, kompilacja i uruchamianie programów (25 min).

III. Utworzenie własnego modelu (klasy) oraz utworzenie programu korzystającego z tego modelu (utworzenie kilku obiektów danej klasy). Kompilacja i uruchomienie (25 min).

IV. Edycja i analiza przykładowych programów demonstrujących elementy sterowania programem (30 min).

V. Utworzenie, kompilacja i uruchomienie własnych programów realizujących postawione przez prowadzącego zadania (40 min).

 

 

 

 

I.               Wprowadzenie kierownika ćwiczenia. Zapoznanie się uczestników ze środowiskiem, przegląd dokumentacji (15 min.).

 

I.1 Java SDK

 

Ćwiczenie realizowane jest w środowisku Java SDK 1.5, oraz edytorze JCreator. Środowisko rozwoju aplikacji (SDK) będzie zainstalowane na lokalnych komputerach. Prowadzący wskaże miejsce instalacji, w celu zapoznania się ze strukturą plików. W celu upewnienia się co do wersji aktualnej maszyny wirtualnej Javy, należy w terminalu (konsoli, wierszu poleceń) systemu operacyjnego wydać polecenie:

Ø      java –version

W wyniku prawidłowego działania powinna pojawić się informacja:

 

java version "1.5.0-beta"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta-b32c)

Java HotSpot(TM) Client VM (build 1.5.0-beta-b32c, mixed mode)

 

W przypadku jakichkolwiek problemów należy natychmiast powiadomić prowadzącego ćwiczenie.

 

Ze względu na charakter edukacyjny ćwiczenia, przykładowa kompilacja programu realizowana będzie również poprzez polecenie wydawane w wierszu poleceń. Z tych względów należy ustawić ścieżkę dostępu do narzędzi Javy. Zakłądając, iż Java SDK zainstalowana jest w katalogu c:\java\jdk1_5, należy ustawić ścieżkę:

>set PATH=%PATH%;c:\java\jdk1_5\bin

 

Jeżeli nie pojawiły się żadne komunikaty błędu, wówczas prawdopodobnie ścieżka została ustalona poprawnie. W celach kontrolnych można przykładowo wywołać kompilator Javy (javac), nie podając żadnego argumentu:

 

>javac

 

Prawidłowe ustawienie środowiska spowoduje wyświetlenie informacji pomocniczych o poprawnym wywoływania kompilatora Javy:

 

Usage: javac <options> <source files>

where possible options include:

  -g                        Generate all debugging info

  -g:none                   Generate no debugging info

  -g:{lines,vars,source}    Generate only some debugging info

  -O                        Optimize; may hinder debugging or enlarge class file

 

  -nowarn                   Generate no warnings

  -verbose                  Output messages about what the compiler is doing

  -deprecation              Output source locations where deprecated APIs are used

  -classpath <path>         Specify where to find user class files

  -sourcepath <path>        Specify where to find input source files

  -bootclasspath <path>     Override location of bootstrap class files

  -extdirs <dirs>           Override location of installed extensions

  -d <directory>            Specify where to place generated class files

  -encoding <encoding>      Specify character encoding used by source files

  -target <release>         Generate class files for specific VM version

 

 

UWAGA !!!

Tak ustawione okno terminala (wiersza poleceń) należy zostawić otwarte w tle, gdyż zostanie wykorzystane w dalszej części ćwiczenia.

 

 

I.2 Dokumentacja Javy

 

Uczestnicy ćwiczenia będą mieli dostęp do dokumentacji klas Javy SDK 1.5. Prowadzący wskaże lokalizację dokumentacji, oraz metody korzystania z niej (poprzez przeglądarkę WWW).

 

I.3 Edytor kodu

 

W celu uproszczenia pracy oraz łatwiejszego zarządzania kodem, kompilacją i uruchamianiem, wykorzystywane będzie w czasie ćwiczenia środowisko JCreator. Program ten stanowi podstawowy edytor kodu, wraz z możliwościami kolorowania kodu, numerowania linii kodu, itp.  Prowadzący wskaże miejsce instalacji oraz metodę uruchamiania i korzystania z edytora.

 

Uwaga!

Edytor jest dodatkiem względem JDK. Oznacza to, że JDK musi być już zainstalowane na danej platformie. W edytorze można wybrać, z której wersji JDK (jeśli na danej platformie zainstalowano więcej niż jedną) użytkownik chce korzystać.

JDK względem edytora JCreator wybiera się lub definiuje poprzez MENU programu: Configure->Options. Pojawi się wówczas okno dialogowe Options, gdzie w lewej części znajduje się lista parametrów do konfiguracji. Po wyborze parametru JDK Profiles, okno Options może wyglądać następująco:

 

 

Należy ustawić jako pierwszą pozycję profil JDK opisujący wersję JDK 1.5 (poprzez zastosowanie przycisku Up).

Uwaga! Jeśli jest to konieczne (a na laboratorium nie powinna taka sytuacja wystąpić) dodanie nowego profilu jest banalnie proste: należy wcisnąć przycisk New, a następnie wskazać katalog, w którym zainstalowano JDK. Reszta wykonywana jest automatycznie.

 

Po ustawieniu profilu JDK 1.5, należy dokonać edycji parametru JDK Tools. Jest to niezbędne w przypadku korzystania z unikalnych cech wersji JDK 1.5. Po wskazaniu parametru JDK Tools należy wskazać zapis <Default> dla narzędzia kompilacji (Compiler). Następnie wcisnąć przycisk Edit..., po czym wskazać zakładkę Parameters. Zakładka ta wskazuje na standardowy format parametrów wywołania kompilatora. W celu włączenia unikalnych elementów środowiska JDK 1.5 należy dopisać na początku linię –source 1.5, tak jak to demonstrują następujące ilustracje

 

 

 

 

 

Prowadzący ćwiczenia przygotują odpowiednio środowisko, tak więc uczestnicy zaznajomią się, ewentualnie skontrolują aktualny stan ustawień.

 

 

 

 

 

II. Konstrukcja klas w Javie – interpretacja przykładowego kodu klasy, kompilacja i uruchamianie programów (25 min).

 

Java jest językiem obiektowym, co oznacza, że bazuje na modelach tego co nas otacza. Modele te opisując uogólnione cechy i zachowania elementów (bytów, encji) o tych samych własnościach. Utworzenie elementu danego modelu (klasy) polega na przypisaniu konkretnych wartości do cech, oraz utrwalenie tego elementu w pamięci operacyjnej. Element taki nazywany jest obiektem.

Zasadniczym zatem zadaniem jest utworzenie modelu – kategorii, czy jak to jest nazywane w modelowaniu i programowaniu obiektowym – klasy.

 

Klasę w Javie konstruuje się zaczynając od stworzenia ramy klasy:

 

class NazwaKlasy {

              // pola

              typ_zmiennej zmienna;

              .

              .

              typ_zmiennej zmienna;

             

              //konstruktor - metoda o tej samej nazwie co klasa - wywoływana               //automatycznie przy tworzeniu obiektu danej klasy

              NazwaKlasy(typ_argumentu nazwa_argumentu){

                            treść_konstruktora;

              }

              //metody

              typ_wartości_zwracanej nazwa_metody(typ_argumentu nazwa_argumentu){

                            treść_metody;

              }

}// koniec class NazwaKlasy

 

Przykład 1.1.

 

//RycerzJedi.java

 

//klasa

class RycerzJedi{

 

              //pola  - zmienne opisujące własności obiektu danego typu

              String nazwa;

              String kolor_miecza;

              //konstruktor – metoda tworząca obiekt

              RycerzJedi(String nazwa, String kolor_miecza){

                            //this – oznacza „ten obiekt”, zatem this.nazwa – oznacza pole nazwa tego obiektu

                            this.nazwa=nazwa;

                            this.kolor_miecza=kolor_miecza;

              }

              //metody – opisując dynamiczne własności obiektu

              void opis(){

                            System.out.println(”Rycerz ”+nazwa+ ” ma ”+kolor_miecza+” miecz.”);

              }

}// koniec class RycerzJedi

 

Warto zwrócić uwagę na zastosowaną już metodę notacji. Otóż przyjęło się w Javie (specyfikacja języka Java) oznaczanie nazwy klasy poprzez stosowanie wielkich liter dla pierwszej litery i tych, które rozpoczynają nowe znaczenie w nazwie klasy. Metody i obiekty oznacza się z małych liter. Warto również stosować prosty komentarz rozpoczynający się od znaków „//” i mający zasięg jednego wiersza. Dalej w tekście zostaną omówione inne, ważne zagadnienia związane z konstrukcją i opisem kodu.

 

Przedstawiona powyżej rama i przykład klasy nie mogą być wprost uruchomione – stanowią tylko model jakiegoś bytu o nazwie RycerzJedi.

 

Konieczne jest utworzenie elementu wywołującego określone działanie. W Javie jest to możliwe na różne sposoby. Zasadnicze z nich to aplikacja i aplet. Zanim jednak przejdziemy do uruchamiania programów należy:

 

Skopiować, nagrać (nazwa pliku musi być identyczna jak nazwa klasy, RycerzJedi.java) i skompilować kod z przykładu 1.1.

 

W tym celu:

 

1.       Uruchomić notatnik Windows

2.     Przekopiować treść kodu z elektronicznej wersji instrukcji

3.     Upewnić się co do poprawności wyniku kopiowania,

4.     Zapisać plik RycerzJedi.java do wskazanego przez prowadzącego katalogu, np. c:\java\cwiczenia

5.     W otwartym w tle oknie wiersza poleceń (terminala, konsoli) przejść do katalogu, w którym nagrano plik, np. cd c:\java\cwiczenia

6.     Skompilować klasę: javac RycerzJedi.java

7.     W wyniku kompilacji w tym samym katalogu pojawi się plik RycerzJedi.class, zawierający kod pośredni dla maszyny wirtualnej.

8.     Aby „zobaczyć” zawartość tej skompilowanej klasy można wywołać polecenie: javap –s RycerzJedi

Co spowoduje wyświetlenie opisu klas pól i metod kodu (sygnatury – szczegóły na kolejnych wykładach):

Compiled from RycerzJedi.java

class RycerzJedi extends java.lang.Object {

    java.lang.String nazwa;

        /*   Ljava/lang/String;   */

    java.lang.String kolor_miecza;

        /*   Ljava/lang/String;   */

    RycerzJedi(java.lang.String,java.lang.String);

        /*   (Ljava/lang/String;Ljava/lang/String;)V   */

    void opis();

        /*   ()V   */

}

9.     W celu edukacyjnym można na nowo skompilować plik RycerzJedi.java, wykorzystując opcje kompilatora –g i –verbose, wyświetlające wszelkie komunikaty od debugera oraz informujące o przebiegu kompilacji (jakie klasy są wczytywane – inaczej jakie są wykorzystywane przez dany kod):

javac –g –verbose RycerzJedi.java

Oczywiście wy...

Zgłoś jeśli naruszono regulamin