Struktura programu w języku Java

Slides:



Advertisements
Podobne prezentacje
C++ w Objectivity Marcin Michalak s1744. Pomocne pakiety: Data Definition Language (DDL). Standard Template Library (STL). Active Schema.
Advertisements

Java vs C# Michał Prządka Tomasz Nowak
OOPC++ - operatory1 Operatory class complex { private: double re, im; public: complex (double r, double i = 0) { re = r; im = i; } friend complex operator+
GUI Struktury Spotkanie integracyjne Nazwa wydziału: EAIiE Nazwa katedry: Informatyka Miejsce i data prezentacji: Kraków,
Mirosław Ochodek Sponsorzy: JFace Jak jeszcze szybciej tworzyć interfejsy? ECESIS Eclipse Community Education Project An.
WPROWADZENIE DO JĘZYKA JAVA
Testowanie oprogramowania metodą badania pokrycia kodu
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
REKURENCJA.
Java – wprowadzenie, typy danych, operatory
Programowanie obiektowe – zastosowanie języka Java SE
PROPOZYCJE ZAPISU Autorzy: Uczniowie należący do Samorządu Szkolnego.
Zadania i łamigówki matematyczne.
Moja Prezentacja Aleksandra Skorupa.
FUNKCJA L I N I O W A Autorzy: Jolanta Kaczka Magdalena Wierdak
ŚWIATOWY TYDZIEŃ PRZEDSIĘBIORCZOŚĆI
Systemy klastrowe inaczej klasterowe.
Portal Systemu Jakości Kształcenia Jak się zalogować? Instrukcja dla pracowników UMCS Przygotowanie: Urszula Wojtczak, Zespół Obsługi Systemu Jakości Kształcenia.
PIO 2_2, Zofia Kruczkiewicz1 Wykład 2 – część druga Iteracyjno-rozwojowy cykl oprogramowania 2.
PIO. Autor -Zofia Kruczkiewicz1 Wykład 1-część druga Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowania (część biznesowa aplikacji) iteracyjno-rozwojowy.
Elektronika cyfrowa Prezentacja Remka Kondrackiego.
To jest bardzo proste  Lekcja nr 3
Tablice.
PODSUMOWANIEPODSUMOWANIE BADANIA DIAGNOSTYCZNEGO W KLASIE TRZECIEJ GRUDZIEŃ 2012 R.
Podstawy programowania
Cechy dobrej i udanej strony www Net etykieta. Ergonomia stron WWW.
Szkoła w chmurze.
fotografie - Marcel Cohen
Podstawy programowania w języku C i C++
Co każdy użytkownik komputera wiedzieć powinien
ALGORYTMY.
Uwaga !!! Uczniowie SP 32 w Toruniu ! Zapraszamy was i Wasze rodziny do wzięcia udziału w Festynie Zdrowia, który odbędzie się 31 maja 2013 roku podczas.
Wykonała Sylwia Kozber
Cz.8 Zdarzenia. Refleksja – przypomnienie Event Programowanie zdarzeniowe Do dzieła!
Antonie de Saint-Exupery
Rola tabel w kodzie HTML
xHTML jako rozszerzenie HTML
Instalacja serwera WWW na komputerze lokalnym
PHP Operacje na datach Damian Urbańczyk. Operacje na datach? Dzięki odpowiednim funkcjom PHP, możemy dokonywać operacji na datach. Funkcje date() i time()
HTML Podstawy języka hipertekstowego Damian Urbańczyk.
Tworzenie tabel w edytorze Word
Elementy programowania97 Użycie zmiennych w procedurze Sub ObliczWiek() 'deklaracja zmiennych Dim ImieNazwisko As String Dim DataUrodzenia As Date Dim.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
KINECT – czyli z czym to się je?. Damian Zawada
BEZPIECZNY INTERNET. PRZEGLĄDANIE STRON INTERNETOWYCH.
SKALA MAPY Skala – stosunek odległości na mapie do odpowiadającej jej odległości w terenie. Skala najczęściej wyrażona jest w postaci ułamka 1:S, np. 1:10.
Bazy danych.
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Pliki elementowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików elementowych. Pliki takie zawierają informację zakodowaną
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
W.K. (c) Bazy danych Access. 2W.K. (c) 2007 Baza danych - definicje Baza danych to zbiór informacji dotyczących określonego tematu (stanowiących.
Temat 5: Elementy meta.
Temat 1: Składnia języka HTML
Temat 1: Umieszczanie skryptów w dokumencie
Temat 6: Elementy podstawowe
Temat 4: Znaki diakrytyczne i definiowanie języka dokumentu
Informacje podstawowe
Warsztaty użytkowników programu PLANS – Karwia06 Język makropoleceń JMP programu PLANS Część I mgr inż. Tomasz Zdun.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Obsługa strumienia wejścia/wyjścia /zajęcia nr 2/ printf – wyświetlanie scanf – ??? dla printf: \n - nowa linia \t - tabulator poziomy \b - znak cofania.
Instrukcje sterujące: W instrukcjach sterujących podejmowane są decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane są w zależności.
Komtech Sp. z o.o. Magic Janusz ROŻEJ.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
w/g Grzegorz Gadomskiego
Największym bólem w życiu nie jest śmierć, lecz bycie ignorowanym.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Zapis prezentacji:

Struktura programu w języku Java mgr inż. Sylwia Glińska

Zagadnienia: Ogólna budowa programów w języku Java Kompilacja i interpretacja kodu w języku Java Typy wbudowane w języku Java Podstawowe instrukcje w języku Java

Zasada działania JVM kompilacja interpretacja Pliki *.java Pliki *.class interpretacja

Edytory Zintegrowane środowiska programistyczne Javy Borland JBuilder – http://www.borland.com/products/download/ Eclipse – http://www.eclipse.org/ IBM VisualAge for Java – http://www7.software.ibm.com/vad.nsf JCreator – http://www.jcreator.com/ Kawa – http://www.macromedia.com/ NetBeans – http://www.netbeans.org/ Sun Forte for Java – http://www.sun.com/forte/ffj/index.html Sun One Studio – http://forte.sun.com/ffj/index.html VIM – http://www.vim.org/

Program w Javie Każdy program w Javie jest zestawem klas. Klasa jest podstawową jednostką enkapsulacji (nie można pisać kodu poza definicją klasy). Pisany przez nas program może być zapamiętany w  jednym lub wielu plikach źródłowych o rozszerzeniu "java". Należy przestrzegać następującej konwencji dotyczącej nazewnictwa – nazwa klasy głównej powinna być zgodna z nazwą pliku, który przechowuje program.

Aplkacje i aplety Wyróżniamy dwa rodzaje programów: aplikacje (standalone programs) aplety (applets). Aplikacje mogą działać zarówno w trybie graficznym jak i tekstowym. Aplety działają jedynie w środowisku graficznym. Aby zobaczyć działanie aplikacji musimy mieć zainstalowaną w naszym komputerze wirtualną maszynę Javy – JVM. Aplety są wykonywane przez środowisko przeglądarek; są one widoczne wtedy, gdy przeglądarka posiada zintegrowaną wirtualną maszynę Javy.

Kompilacja Kompilator Javy wymaga, aby pliki źródłowe miały rozszerzenie "java". Pliki źródłowe są kompilowane za pomocą kompilatora Javy (javac.exe) do postaci kodu bajtowego (pośredniego), a nie kodu maszynowego. Polecenie kompilacji pliku źródłowego ma postać: javac nazwa_pliku.java Wynikiem kompilacji są pliki z rozszerzeniem "class", które mogą być wykonane przez maszynę wirtualną Javy. Podczas kompilacji pliku źródłowego każda klasa zostaje przeniesiona do swojego własnego pliku o nazwie właściwej zgodnej z nazwą klasy i rozszerzeniu "class".

Aplikacja Aby aplikacja mogła zostać uruchomiona, główna klasa musi zawierać metodę public static void main(String args[]) Maszyna wirtualna Javy jest wywoływana za pomocą polecenia java z argumentami: nazwa pliku o rozszerzeniu "class" zawierającego metodę main() oraz argumenty wywołania tej metody, np.: java nazwa_pliku [arg1 arg2 …] Po załadowaniu klasy przez JVM sterowanie zostaje przekazane do metody main() i tu zaczyna się właściwe działanie programu: tworzenie obiektów, odwołania do innych klas aplikacji.

Pierwszy program public class Hello { public static void main (String [ ] args) System.out.println("HELLO WORLD"); }

Jak działa nasz program? Po załadowaniu klasy Pierwsza.class przez JVM sterowanie zostaje przekazane do metody main(). W naszym przykładzie metoda ta jest zdefiniowana z jednym parametrem; jest nim tablica args typu String. Dzięki temu możliwe jest przekazanie parametrów do aplikacji. Są one umieszczane w kolejnych elementach tej tablicy: args[0], args[1], args[2], itd. Liczbę przekazanych parametrów można uzyskać za pomocą metody length(), na przykład: int liczbaParametrów = args.length(); Metoda main() zawiera jedynie jedno polecenie System.out.println();

Pakiety Java dostarcza nam do dyspozycji tzw. pakiety - są to swoiste biblioteki klas, przy czym każda klasa w Javie należy do jakiegoś pakietu; zdefiniowana przez nas klasa należy do pakietu "bez nazwy" (domyślnego), definiowanego przez środowisko. Pakiety poza grupowaniem klas pełnią również rolę porządkującą i chronią przed kolizjami nazw. Jednym ze standardowych pakietów, nie wymagających deklaracji, jest pakiet java.lang, zawierający główne klasy języka Java.

Metoda println() W klasie System pakietu java.lang zadeklarowano statyczne pole out związane ze standardowym wyjściem. Z polem tym związana jest metoda println(), która wypisuje na wyjściu wiersz podany jako argument. Czyli wynikiem działania programu będzie wypisanie na ekranie monitora pozdrowienia: „HELLO WORLD".

Modyfikacja programu class Hello1 { public static void main (String args[]) pisz(„HELLO WORLD"); } public static void pisz (String s) System.out.println(s);

Jaka jest różnica? Wynik działania naszej aplikacji jest dokładnie taki sam jak poprzednio, wywołanie w metodzie main() metody pisz() z parametrem „Hello world" oznacza polecenie wypisania podanego tekstu na ekranie monitora. Jedyna różnicą jest to, iż tym razem zdefiniowaliśmy w naszej klasie dwie metody - metodę główną sterującą działaniem aplikacji oraz metodę pomocniczą, służącą do wypisywania linii tekstu na ekranie.

Operatory i ich priorytety Typ argumentu Nazwa 1 ++ -- Arytmetyczny Inkrementacja, dekrementacja + - Unarny +, unarny - ~ Całkowity Uzupełnienie bitowe ! Boole'owski Negacja logiczna (typ) Dowolny Konwersja (rzutowanie) 2 * / Mnożenie, dzielenie % Modulo (reszta) 3 Dodawanie, odejmowanie

<< >> >>> Priorytet Operator Typ argumentu Nazwa 3 + Łańcuchowy Konkatenacja 4 << >> >>> Całkowity Przesunięcie bitowe 5 < > <= >= Arytmetyczny Operatory relacji instanceof Obiektowy Stwierdzenie typu 6 == != Podstawowy Równe nierówne 7 & Bitowe AND 8 ^ Bitowe XOR

9 10 11 12 13 Priorytet Operator Typ argumentu Nazwa | Całkowity && Bitowe OR 10 && Boole'owski Logiczne AND 11 || Logiczne OR 12 ?: Operator warunku 13 = *= /= += -= %= Zmienna, dowolny Operatory przypisania

Typy danych w Javie Java jest językiem ze ścisłą kontrolą typów, w którym rozmiar i postać danych są określone bardzo precyzyjnie. Typy danych w Javie można podzielić na dwa rodzaje: typy proste i typy referencyjne (klasy, interfejsy i tablice). Do przechowywania liczb całkowitych przeznaczone są cztery typy: byte (8 b), short (16 b), int (32 b) oraz long (64 b). Rzeczywiste typy liczbowe to: float (32 b) i double (64 b). Dane znakowe zapisywane są zgodnie ze standardem Unicode - są to 16-bitowe liczby całkowite bez znaku. Do ich przechowywania służy typ char. Typ boolean (1 b) umożliwia przechowywanie wartości logicznych. Może on przyjmować tylko dwie wartości: true i false.

Podstawowy zestaw instrukcji Instrukcja warunkowa if Pętla while Pętla do while Pętla for Instrukcja switch

Postać instrukcji if if (warunek) { instrukcje } else

Wyrażenia logiczne (warunki) Wyrażenia logiczne można przypisywać zmiennym typu boolean. Ich wartością może być true lub false. Proste wyrażenia logiczne konstruuje się za pomocą operatorów relacji: <, >, <=, >=, == (czy równe), != (czy różne). Do budowy bardziej złożonych wyrażeń używa się operatorów logicznych: && (koniunkcji – logiczne AND), || (alternatywy – logiczne OR), ! (negacji – logiczne NOT).

Instrukcja while while ( warunek ) { instrukcje } Przykład pętli while (dopóki) while ( samochód jest brudny ) { myj_samochód( ); } Ile razy wykona się instrukcja wewnętrzna pętli, gdy samochód jest czysty?

Instrukcja do while do { instrukcje } while ( warunek ); Przykład pętli do (wykonuj dopóki) do { myj_samochód( ); } while (samochód jest brudny); Ile razy wykona się instrukcja wewnętrzna pętli, gdy samochód jest czysty?

Instrukcja for for ( wyrażenie1 ; warunek ; wyrażenie2 ) { instrukcje } Przykład pętli for (dla) for ( int i=0; i<10; i++) { myj_samochód( ); } Zmienną i nazywamy zmienną sterującą pętli. Zasięg działania zmiennej i jest ograniczony do pętli for.

Instrukcja switch switch ( wyrażenie) { case Wartość1 : /* ... */ break; case Wartość2 : default : }

Tablice Tablica - to ciąg zmiennych tego samego typu, opisanych jedną wspólną nazwą. Elementy tablicy identyfikuje się je za pomocą indeksów. Dostęp do poszczególnych elementów tablicy odbywa się za pomocą operatora indeksowania []. Indeksy są liczone od zera. Tablica jednowymiarowa odpowiada matematycznemu pojęciu wektora, dwuwymiarowa – macierzy. Tablice w języku Java są zaimplementowane jako obiekty, więc nie mogą być deklarowane statycznie. Tworzenie tablicy składa się z dwóch etapów: deklaracja zmiennej referencyjnej tablicy utworzenie nowego obiektu tablicy i przypisanie go do danej zmiennej tablicowej.

Tablice jednowymiarowe Przykład instrukcji tworzących tablice: int[] mojaTablica = new int[10]; int mojaTablica[] = new int[10]; Tablicę można też utworzyć w dwóch etapach: najpierw deklarujemy zmienną referencyjną tablicy: int[] mojaTablica ; lub int mojaTablica[]; następnie tworzymy nowy obiekt tablicy: /* Musimy określić rozmiar tablicy, aby zaalokować potrzebny dla niej obszar pamięci*/ mojaTablica = new int[10];

Tablice wielowymiarowe Java obsługuje tablice wielowymiarowe, kóre posiadają dwa lub więcej indeksów. Ogólna postać instrukcji tworzącej tablicę wielowymiarową ma postać: typ[][]...[] nazwa = new typ[roz1][roz2]...[rozN]; Przykład instrukcji tworzącej tablicę o dwóch wymiarach (jest to najczęściej używana forma tablicy wielowymiarowej) : int[][] A = new int[10][10]; lub int A[][] = new int[10][10];

Ćwiczenie 1 Napisz program, który wyświetli n znaków "*" w jednym wierszu , gdzie n jest parametrem funkcji. Oto nagłówek funkcji: public static void rysuj_gwiazdki( int n ) Spróbuj użyć tej funkcji dla różnych parametrów.

Rozwiązanie public static void main (String args[]) { rysuj_gwiazdki(10); } public static void rysuj_gwiazdki(int n) for (int i=0; i<n; i++ ) System.out.print("*"); System.out.println();

Ćwiczenie 2 Napisz funkcję rysującą prostokąt o zadanych wymiarach, który składa się z samych gwiazdek. Na przykład po wywołaniu tej funkcji z parametrami 8 i 3 powinniśmy dostać: * * * * * * * * * * * * * * * * * * * * * * * * Oto nagłówek funkcji public static void rysuj_prostokat( int a, int b )

Rozwiązanie public static void rysuj_prostokat(int a, int b) { for (int i=0; i<b; i++ ) for (int j=0; j<b; j++ ) System.out.print("*"); } System.out.println();

Ćwiczenie 3 Napisz funkcję rysującą trójkąt z gwiazdek. Wysokość trójkąta ma być podawana jako parametr. Na przykład po wywołaniu funkcji z parametrem 4 powinniśmy otrzymać następujący rysunek: * * * * * * * * * *

Rozwiązanie public static void rysuj_trojkat(int n) { for (int i=0; i<n; i++ ) for (int j=0; j<=i; j++ ) System.out.print("* "); } System.out.println();

Ćwiczenie 4* Zmodyfikuj program rysujący trójkąt tak, aby rysował trójkąty równoramienne. Na przykład po wywołaniu funkcji rysuj_trójkat z parametrem 4 powinniśmy otrzymać następujący rysunek: * * * * * * * * * * * * * * * *

Rozwiązanie public static void rysuj_spacje(int n) { Trójkąt składa się z m wierszy, przy czym każdy kolejny wiersz jest dłuższy o dwie gwiazdki i ma mniejszą o jeden liczbę spacji poprzedzających. Wygodnie jest wprowadzić metody pomocnicze do rysowania spacji i gwiazdek. public static void rysuj_spacje(int n) { for (int i=0; i<n; i++ ) System.out.print(" "); }

public static void rysuj_gwiazdki(int n) { for (int i=0; i<n; i++ ) System.out.print("* "); } public static void rysuj_trojkat(int m) for (int i=0; i < m; i++ ) rysuj_spacje(m-i-1); rysuj_gwiazdki(2*i+1); System.out.println();

brak pierwiastków rzeczywistych Ćwiczenie 5 Napisz program wyznaczający pierwiastki równania kwadratowego dla danych współczynników a, b i c. Przykładowy nagłówek funkcji: static void prk( int a, int b, int c ) Wyznacznik = b2 – 4ac Wyznacznik Pierwiastki większy od zera równy zeru mniejszy od zera brak pierwiastków rzeczywistych

Ćwiczenie 6 Napisz program sprawdzający czy podana liczba jest liczbą parzystą.