1 / 37

Java

3 MPDI. Programowanie obiektowe. Java. W5. Java - obiektowy język programowania stworzony przez firmę Sun Microsystems. Java jest językiem tworzenia programów źródłowych kompilowanych do tzw. kodu bajtowego - czyli postaci wykonywanej przez maszynę wirtualną .

lena
Download Presentation

Java

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. 3MPDI Programowanie obiektowe Java W5

  2. Java - obiektowy język programowania stworzony przez firmę Sun Microsystems. Java jest językiem tworzenia programów źródłowych kompilowanych do tzw. kodu bajtowego - czyli postaci wykonywanej przez maszynę wirtualną. Podstawowe koncepcje zostały przejęte z języka Smalltalk oraz z języka C++ (duża część składni i słów kluczowych).

  3. Platforma Eclipse – początki IBM • elastyczna - może być dowolnie modyfikowane i rozszerzane przy pomocy wtyczek • darmowa • napisana w Javie • nie tylko Java – także C++, PHP, Python, JavaScript, Cobol • kontrolki graficzne SWT - podobne do Windows – pakiet Swing

  4. Niezależność od architektury Kod źródłowy programów Javy kompiluje się do kodu pośredniego. Powstały kod jest niezależny od systemu operacyjnego i procesora. Java virtual machine tłumaczy kod uniwersalny na kod dostosowany dla konkretnego SO i procesora. Wirtualna maszyna Javy jest już dostępna dla większości systemów operacyjnych i procesorów. WADA kod pośredni jest interpretowany - jest wolniejszy niż kompilowany do kodu maszynowego. można dodatkowy kompilator (JIT lub GCJ) i wówczas już nieprzenośny kod ale dla konkretnej maszyny.

  5. Eclipse (Helios) Instalacja Eclipse Platformę Eclipse można ściągnąć z: http://www.eclipse.org/downloads Aby prawidłowo działała należy zainstalować środowisko uruchomieniowe (maszyna wirtualna)- SUN lub Oracle: JRE – Java Runtime Evironment lub dające większe możliwości programistom JDK – Java Development Kit – daje możliwość m.in. tworzenia, kompilacji i uruchamiania aplikacji bezpośrednio w Windows. Następnie rozpakowujemy i kopiujemy pliki Eclipse – nie ma pliku instalacyjnego

  6. plik .java (kod źródłowy) plik .java (kod źródłowy) bez Eclipse z JDK (Java SDK) kompilacja – javac uruchomienie - java plik .class

  7. Uruchamiamy Eclipse, wybierając jako „workspace” (obszar roboczy) własny folder Pierwszy program

  8. Nowa klasa - typ obiektowy

  9. Package – pakiet klas klasy w ramach pakietu "widzą" się nawzajem Pakiety - ułatwiają organizację klas Jedna z klas pakietu powinna mieć metodę main W tej metodzie definiujemy działanie aplikacji

  10. Silne typowanie oznacza, że każda wprowadzana zmienna czy pole musi mieć: przypisany typ przechowywanych w niej danych każda metoda musi: deklarować, jakiego typu dane zwraca (lub void, jeśli nic nie zwraca).

  11. Klasa z metodą main package standard; public class Hello { public static void main(String[] args) { System.out.println("Witaj w świecie Javy"); } } metoda main – wykonywana! tu zazwyczaj tworzymy nowe obiekty dla danej klasy (własnej lub zdefiniowanej) i zmuszamy je do działania! Nazwa klasy taka sama jak nazwa pliku .java z definicją klasy

  12. Uruchomienie programu • menu Run i wybieramy Run as > Java Application • zielona ikona z białą strzałką konsola (Console) – wyniki to co ustalimy w instrukcji System.out.println(……………);

  13. Pola i metody dla klasy Pola mogą być typów prostych, ale jest wiele typów obiektowych zdefiniowanych w Javie – także wymagających poznania (i dołączenia odpowiednich bibliotek)

  14. Podstawowe typy danych

  15. Operacje arytmetyczne Operatory arytmetyczne + – / * % (reszta z dzielenia całkowitego) – zmiana znaku inkrementacja i dekrementacja ++ -- (forma przedrostkowa i przyrostkowa)

  16. Operatory przypisania np. x*=y oznacza x=x*y

  17. Operatory relacyjne < > <= >= = = równe != różne Operatory logiczne ! negacja && logiczne AND || logiczne OR Operator warunkowy ? Składnia: zmienna=warunek ? wartość_jeśli_prawda :wartość_jeśli_fałsz ;

  18. DUŻE I MAŁE litery istotne • – styl "wielbłądzi" • kapitalizowanie drugiego i następnych słów składowych • jest nieobowiązkowy, ale dobra praktyka programowania w Javie mojPierwszyProgram

  19. W nazwach zmiennych i metod można używać polskich liter – dzięki wbudowanemu kodowaniu Unicode private int łódź; łódź=10; System.out.println(łódź/2);

  20. Błędy niepoprawny kod jest podkreślony na czerwono po lewej stronie na marginesie – ikonka podpowiedzi! okno z zakładką TASKS – po prawej

  21. Pomoce np. napisanie sysout i CTRL+spacja spowoduje: System.out.println(); Wszystkie w: Window > Preferences i wybrać Java > Editor > Templates

  22. Klasa z metodą main publicclass Klasa1 { publicstaticvoidmain(String[] args) { int suma,A,B,C; A=4;B=7;C=9; suma=A+B+C; System.out.println("Wynik dodawania: "+ suma); int reszta= C % A; System.out.println("Reszta z dzielenia 9/4: "+ reszta); double y;//deklaracja y=5.2;//przypisanie wartości double Zet=7.56;//deklaracja i przypisanie System.out.println("Dzielenie: "+ y/Zet); } } instrukcje i deklaracje można przeplatać UWAGA na średniki! ;

  23. Definicja klasy – nie ma metody main package standard; public class Kwadrat { // właściwości (atrybuty/pola) private float bok; private float pozycja; private int kolor; //lepiej obiekt java.awt.Color // operacje (metody) public float obliczPole() { return bok*bok; } public voidwyświetl(){ System.out.println(obliczPole()); } }

  24. Schemat definicji pól i metod definicja pola public|privatetypnazwa [ =wartość]; definicja metody • public|privatetyp|voidnazwa { • co ma robić metoda • returnwyrażenie_typu_typ //jeśli nie void! • } | - alternatywnie [ ] - opcjonalnie public – dostępne w innej klasie pakietu private – niedostępne – tylko z wykorzystaniem metod! Przeważnie pola są prywatne, a metody publiczne, ale oczywiście może być inaczej

  25. Tworzymy instancję obiektu w klasie Nowa klasa z metodą main • package standard; • publicclassprogram { • publicstaticvoid main(String[] args) { • Kwadrat p=new Kwadrat(); • } • } ale jakie parametry – wartości pól ma kwadrat?

  26. można tak – tworzymy definicję metody: package standard; public class Kwadrat { // właściwości (atrybuty/pola) private float bok; private float pozycja; private int kolor; //lepiej obiekt java.awt.Color // operacje (metody) public void nadajBok(float a) { bok=a; } public float obliczPole() { return bok*bok; } public void wyświetl(){ System.out.println(obliczPole()); } }

  27. i teraz… • package standard; • class program { • publicstaticvoidmain(String[] args) { • Kwadrat p=new Kwadrat(); • p.nadajBok(5); • p.wyświetl(); • } • }

  28. albo bardziej elegancko… package standard; public class Kwadrat { // właściwości (atrybuty/pola) private float bok; private float pozycja; private int kolor; //lepiej obiekt java.awt.Color // operacje (metody) public Kwadrat(float a) { //metoda KONSTRUKTORA!!!! bok=a; } public float obliczPole() { return bok*bok; } public void wyświetl(){ System.out.println(obliczPole()); } }

  29. i przy tworzeniu obiektu nadajemy wartość jako argument konstruktora • package standard; • publicclass program { • publicstaticvoid main(String[] args) { • Kwadrat k=new Kwadrat(5); • k.wyświetl(); • } • }

  30. można utworzyć wiele obiektów.. instancji klasy • package standard; • publicclass program { • publicstaticvoid main(String[] args) { • Kwadrat k1=newKwadrat (5); • Kwadrat k2=newKwadrat (7); • k1.wyświetl(); • k2.wyświetl(); • } • }

  31. może być wiele konstruktorów: publicclass Kwadrat { privatedouble bok; privatefloat pozycja; privateint kolor; //lepiej obiekt java.awt.Color publicKwadrat (double a) { bok=a; } publicKwadrat (int k) { kolor=k;} publicfloat obliczPole() { return bok*bok; } publicvoid wyświetl(){ System.out.println(obliczPole()); } } ale muszą się różnić liczbą lub typem argumentów, bo maja te same nazwy

  32. Dziedziczenie publicclassFigura { privatefloat pozycja; privateint kolor; //metody publicfloat obliczPole() { return 0; } publicvoid wyświetl(){ System.out.println(obliczPole()); } }

  33. publicclassKwadratextends Figura{ privatefloat bok; //pozycja i kolor dziedziczone privateint kolor; //lepiej obiekt java.awt.Color publicKwadrat(int a) { bok=a; } @Override // "przesłaniamy" operacje rodzica publicfloat obliczPole() { return bok*bok; } }

  34. Projekt hierarchii klas dziedziczących powinien być sensowny Np. klasa Auto dziedziczy po klasie Pojazd klasa Student dziedziczy po klasie Człowiek itp. Klasa dziedzicząca domyślnie posiada wszystkie metody przodka i można w niej definiować nowe. Np. Człowiek ma nazwisko Student ma nazwisko i numer indeksu

More Related