1 / 108

Podstawowe aspekty programowania w Javie

Podstawowe aspekty programowania w Javie. Michał Kuciapski m.kuciapski@univ.gda.pl. Kwestie organizacyjne. Cel przedmiotu.

nitza
Download Presentation

Podstawowe aspekty programowania w Javie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Podstawowe aspekty programowania w Javie Michał Kuciapski m.kuciapski@univ.gda.pl

  2. Kwestie organizacyjne

  3. Cel przedmiotu Celem przedmiotu jest ukazanie podstawowych elementów składni języka programowania Java wraz z wykazaniem praktycznego ich zastosowania w tworzeniu aplikacji konsolowych, na podstawie rozbudowanego przykładu przy wsparciu ze strony technik analizy i projektowania obiektowego.

  4. Tematyka przedmiotu

  5. Tematyka przedmiotu

  6. Tematyka przedmiotu

  7. Tematyka przedmiotu

  8. Ocena • Egzamin – 70 % • Ocena z ćwiczeń – 30 % • Dodatkowe punkty za aktywność • Zwolnienia dla osób z oceną z ćwiczeń • 4,5 i 5

  9. Literatura • Eckel B, Thinking in Java, 3rd Edition Revision 4.0 , Prentice-Hall, New Jersey 2002; http://www.pythoncriticalmass.com/ • Dokumentacja producenta języka JAVA; http://java.sun.com/docs/ • Kurs dotyczący języka Java firmowany przez CISCO Networking Academy oraz firmę SUNhttp://java.sun.com/docs/books/tutorial/index.html

  10. Języki programowania

  11. Typy języków programowania • Język maszynowy - kod maszynowy pisany binarnie lub szesnastkowo. • Asemblery - języki programowania tzw. niskiego poziomu. Każda instrukcja asemblera odpowiada jednej instrukcji procesora w kodzie maszynowym (w przeciwieństwie do języków wysokiego poziomu). Przykład: Asembler. • Imperatywne - program składa się ze zmiennych oraz modyfikujących je operacji, z jawnie określonym przepływem sterowania. Typowe języki tego typu to C, Pascal. • Obiektowe - program składa się z "obiektów" - elementów łączących stan (czyli dane) i zachowanie (metody). Obiektowy program komputerowy jest zbiorem obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Typowe języki: Simula, Smalltalk, C++, Perl, Java, Ada, Python, Delphi, VB.

  12. Podstawowe informacje o języku Java Historia i istota języka Java

  13. Najważniejsze etapy historia Javy • 1980: pojawienie się koncepcji programowania obiektowego (ang. object-oriented programming (OOP )) • 1990: Bill Joy w raporcie „Further” sugeruje SUNowi stworzenie środowiska obiektowego na bazie C++ • 1991: projekt „Green”. Powstaje język *7 / OAK (Object Application Kernel) firmowany przez Jamesa Goslinga. Przeznaczenie – elektronika powszechnego użytku (Przenośność! Niezależność od różnych procesorów!) • 1995: zmiana nazwy na Java

  14. Najważniejsze etapy historia Javy • 1996: w przeglądarce Netscape zaimplementowano obsługę JAVA w wersji 1.0; SUN propaguje darmowe środowisko JDK 1.0 • 1999: JAVA 2, zastosowania biznesowe • 1999 – stałe rozwijanie języka przez firmę Sun

  15. Dlaczego Java • Szerokie zastosowanie • Elastyczność w zakresie obsługiwanego sprzętu • Wsparcie ze strony profesjonalnych narzędzi • Możliwość ponownego wykorzystania raz stworzonego kodu • Uproszczenie szeregu mechanizmów oraz zwiększenie poziomu bezpieczeństwa w stosunku C++ • Moda

  16. Zastosowania Javy • Kartyinteligentne i elektronika • Systemy zarządzania bazami danych • Obsługamultimediów • Internet - rozproszone, wielowarstwowe aplikacje - J2EE (Java 2 Enterprise Edition) , aplety • Grafika 3D • Technologie mobilne • Kryptografia

  17. Języki kompilowane a interpretowalne • Języki kompilowane: • Cały kod źródłowy aplikacji jest kompilowany do pliku wykonalnego (.exe, .com) • Kompilacja polega na transformacji kodu źródłowego w plik „zrozumiały” dla konkretnej platformy programowo-sprzętowej • Program nie będzie działał w innych środowiskach • Kompilacja jest procesem wykonywanym jednokrotnie • Plik wykonywalny zostanie stworzony tylko i wyłącznie wtedy, gdy nie wystąpią żadne błędy składniowe

  18. Języki kompilowane a interpretowalne • Języki interpretowalne: • Nie występuje plik wykonywalny dostosowany do konkretnej platformy - tzw. Beta-kod, • Kolejne linie kodu są na bieżąco odczytywane z pliku źródłowego i wykonywane • Kontrola składni wykonywana jest dopiero w momencie wywołania kolejnych linii kodu • Języki tego typu są z natury wolniejsze

  19. Platforma Javy Program w Javie Wirtualna Maszyna Javy Java API System komputerowy

  20. Architektura Kod źródłowy Java (.java) Biblioteka klas Javy Ładowacz Klas Weryfikator kodu Kod bajtowy Java Przesyłany jest lokalnie lub poprzez sieć Kompilator Wirtualna Maszyna Javy Kompilator kodu „w locie” Interpretator Java Kod bajtowy Java (.class) System wykonywania System operacyjny Sprzęt

  21. Środowisko tworzenia aplikacji • JVM (Java Virtual Machine) • + Java API (Application Programming Interfaces) • = JRE (Java Runtime Engine) • + narzędzia kompilacji • + biblioteki • = Java SDK (Software Development Kit)

  22. Podstawowe narzędzia • javac – prekompilator • java – interpretator beta-kodu • javaw – j. w., bez konsoli • javadoc – generator dokumentacji • appletviewer – interpretator appletów • jar – narzędzie do zarządzania archiwami • jdb – debugger • Narzędzia domyślnie znajdują się w katalogu c:\java2sdk\bin

  23. Procedura tworzenia programu • Napisanie kodu źródłowego i zapisanie go w pliku NazwaKlasy.java • Nazwa pliku powinna być identyczna z nazwą klasy • Prekompilacja do beta-kodu: • javac NazwaKlasy.java • Uruchomienie programu • java NazwaKlasy

  24. Procedura tworzenia programu • UWAGI: • Java jest językiem case-sensitive • Uważamy, aby w momencie użycia narzędzia javac podać rozszerzenie, a z kolei przy zastosowaniu interpretera java je pominąć • Początkowo najlepiej korzystać z katalogu bin do zapisywania programów • Na późniejszym etapie definiujemy w ustawieniach systemu zmienne środowiskowe: • CLASSPATH – katalog w którym znajdują się klasy • PATH – katalog w którym znajdują się narzędzia

  25. Podstawowe informacje o języku Java Konstruowanie kodu w języku Java

  26. Typy elementy programowania Javy • Strukturalne • Obiektowe • Zdarzeniowe • Współbieżne

  27. Struktura programu • PrzykladowaKlasa.java • class PrzykładowaKlasa { • … • } • UWAGI: • Musi istnieć zgodność pomiędzy nazwą wywołanego pliku a nazwą klasy • Nazwy klas powinny zawierać rzeczowniki (np.: Student, PobieranieDanych), rzeczowniki i przymiotniki (np. WykładowcaAkademicki), aby jednoznacznie wyrażać typy tworzonych obiektów. Nie powinny zawierać one czasowników (np. DodajeStudentów)

  28. Zasady konstrukcji kodu • Tworzenie czytelnego kodu jest jego organizacja w bloki, które są wyróżniane poprzez wcięcia • instrukcja_grupująca { • … • … • … • } • Stosowanie pewnej nadmiarowości • int a = (c*2) + (b/3); • zamiast • int a=c*2+b/3;

  29. Zasady konstrukcji kodu • Wykorzystywanie komentarzy • Komentarz liniowy • // taka linia kodu zostanie pominięta przez interpretator • Komentarz blokowy • /* • tu jest • kilka • linii • które są ignorowane • */

  30. Zasady konstrukcji kodu • Komentarz dokumentacyjny • /** • niby • podobnie, a jednak • inaczej • */ • Często komentarz dokumentacyjny jest umieszczany na samym początku programu, i zawiera specjalne słowa kluczowe: • @author tu imię i nazwisko autora • @version tu wersja aplikacji • @see tu ewentualne odwołania do źródeł

  31. Zasady konstrukcji kodu • Umieszczając komentarze pamiętajmy, że są one interpretowane jako spacja. • double pi = 3.14/*kto to spamięta*/56; • Konsekwencja • int[] n; • int n[]; • Nazewnictwo

  32. Przykładowy program • /** • @author Michał Kuciapski • @version 0.1 • */ • public class Powitanie { // po uruchomieniu na ekran // wyskoczy Witaj serdecznie! • public static void main(String[] args) { • System.out.println(”Witaj serdecznie!”); • } • }

  33. Podstawowe informacje o języku Java Podstawowe informacje o obiektowości Javy

  34. Paradygmat obiektowości • Opanowywanie złożoności dziedziny problemu opiera się na zasadach: • rozróżnianie poszczególnych obiektów • tworzenie pojęć - łączenie obiektów w klasy • znajdowanie zależności między pojęciami - klasami, wyprowadzanie nowych • określanie relacji między obiektami, agregacja, kojarzenie

  35. Na czym polega obiektowość Javy • Obiekty i atrybuty • Klasy i rozróżnianie między nimi • Zależności między pojęciami – dziedziczenie, agregacja, kojarzenie • Hermetyzacja • Komunikacja przy pomocy komunikatów

  36. Na czym polega obiektowość Javy – obiekty i atrybuty Obiekt – abstrakcja czegoś w dziedzinie problemu Abstrakcja - ignorowanie tych aspektów (cech, właściwości) przedmiotu, które nie są istotne z punktu widzenia bieżącego celu, a koncentrowanie się na aspektach właściwych Obiekt = (identyfikacja) + stan + zachowanie

  37. Na czym polega obiektowość Javy – klasy Klasa – abstrakcja grupy obiektów o podobnej charakterystyce Klasa = wspólne własności + wspólne zachowania

  38. Na czym polega obiektowość Javy – zależności Dziedziczenie – wyrażanie podobieństwa między klasami przy pomocy hierarchii uszczegóławiania i uogólniania Agregacja – wyróżnianie obiektów „całości” i ich „składowych” Kojarzenie – wiązanie obiektów na podstawie ich cech (atrybutów)

  39. Na czym polega obiektowość Javy – hermetyzajca Hermetyzacja – ukrywanie informacji o składowych systemu tak, aby zamykały one w sobie możliwie jedną decyzję projektową

  40. Na czym polega obiektowość Javy – przykład Elementy obiektowe w przykładowej aplikacji do zarządzania informacjami o studentach i nauczycielach mającej następujące funkcjonalności: 1. Dodanie osoby (nauczyciel/student) 2. Usunięcie osoby (nauczyciel/student) 3. Wyszukanie i wyświetlenie danych osoby (nauczyciel/student) 4. Modyfikacja danych osoby (nauczyciel/student) 5. Wyświetlenie listy osób (nauczyciel/student) 6. Zapisanie danych 7. Wczytanie danych 8. Wyjście z aplikacji

  41. Na czym polega obiektowość Javy – przykład Obiekty i atrybuty: nauczycielMK.imie = ”Michał”; studentAP.nazwisko = ”Borski”; PobieranieDanych tym = new PobieranieDanych(); tym.imie = br.readLine(); this.pracuje = true

  42. Na czym polega obiektowość Javy – przykład Klasy i rozróżnianie pomiędzy nimi: public class OperacjePlikowe { … … … } public class PobieranieDanych { … … … }

  43. Na czym polega obiektowość Javy – przykład Zależności – dziedziczenie: public abstract class Osoba { … … … } class Nauczyciel extends Osoba { … … … }

  44. Na czym polega obiektowość Javy – przykład Zależności - komunikacja za pomocą komunikatów : class Nauczyciel extends Osoba { … public Nauczyciel dodaj() throws IOException { … PobieranieDanych tym = new PobieranieDanych(); tym.dodajNauczyciel(); … } … }

  45. Składnia języka Java „Elementy strukturalne”

  46. Elementy leksykalne • Komentarze • Identyfikatory • Słowa kluczowe • Separatory • Przykład

  47. Komentarze • Trzy typy: • Jednoliniowe - // - np. //wczytanie linii tekstu z pliku • Blokowe - /* */ - np. /* wczytanie linii tekstu z pliku • skonwertowanie na liczbę */ • Dokumentacyjne - /** */ - np. • /** • Write a description of class j here. • @author (your name) • @version (a version number or a date) • */

  48. Separatory

  49. Słowa kluczowe • Słowa kluczowe są identyfikatorami o specjalnym znaczeniu dla języka (kompilatora) Java. • Poszukiwane przez kompilator w czasie kompilacji. • Zarezerwowane dla języka i nie mogą być używane w konstrukcji nazw własnych identyfikatorów.

  50. Słowa kluczowe - lista • abstract – deklaruje klasę lub metodę jako abstrakcyjną • boolean – deklaruje zmienną lub wartość zwracaną jako wartość logiczną • break – przerwanie • byte – deklaruje zmienną lub wartość zwracaną jako wartość byte • case – określa opcję w instrukcji wyboru switch • catch – obsługuje wyjątek • char – deklaruje zmienną lub wartość zwracaną jako wartość znaku • class – oznacza początek definicji klasy • const – definiuje stałą (nieużywane) • continue – przerywa pętlę rozpoczynając jej kolejny cykl

More Related