Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałDita Małysa Został zmieniony 10 lat temu
1
Java 3 MPDI Programowanie obiektowe 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
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. Niezależność od architektury
5
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. Eclipse (Helios) Następnie rozpakowujemy i kopiujemy pliki Eclipse – nie ma pliku instalacyjnego
6
kompilacja – javac uruchomienie - java plik.java (kod źródłowy) plik.class bez Eclipse z JDK (Java SDK)
7
Pierwszy program Uruchamiamy Eclipse, wybierając jako workspace (obszar roboczy) własny folder
9
Nowa klasa - typ obiektowy
11
klasy w ramach pakietu "widzą" się nawzajem Pakiety - ułatwiają organizację klas Package – pakiet klas Jedna z klas pakietu powinna mieć metodę main W tej metodzie definiujemy działanie aplikacji
13
każda metoda musi: deklarować, jakiego typu dane zwraca (lub void, jeśli nic nie zwraca). oznacza, że każda wprowadzana zmienna czy pole musi mieć: przypisany typ przechowywanych w niej danych Silne typowanie
14
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! Klasa z metodą main Nazwa klasy taka sama jak nazwa pliku.java z definicją klasy
15
menu Run i wybieramy Run as > Java Application zielona ikona z białą strzałką Uruchomienie programu konsola (Console) – wyniki to co ustalimy w instrukcji System.out.println(……………);
16
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)
17
Podstawowe typy danych Typzawartość wartość domyślna rozmiarMin wartość Max wartość boolean logiczna (true lub false) false1 bit char znak (Unicode) u000016 bit\u0000 \uFFFF byte całkowita ze znakiem 08 bit-128 127 short całkowita ze znakiem 016 bit-32768 32767 int całkowita ze znakiem 032 bit-2147483648 2147483647 long całkowita ze znakiem 064 bit-9223372036854775808 9223372036854775807 float zmiennoprzecinkowa 0.032 bit+/-3.40282347E+38 +/-1.40239846E-45 double zmiennoprzecinkowa 0.064 bit+/-1.79769313486231570E+308 +/-4.94065645841246544E-324
18
Operatory arytmetyczne + – / * % (reszta z dzielenia całkowitego) – zmiana znaku inkrementacja i dekrementacja ++ -- (forma przedrostkowa i przyrostkowa) Operacje arytmetyczne
19
Operatory przypisania Operator = += – = *= /= %= np. x*=yoznacza x=x*y
20
Operatory relacyjne = = = równe !=różne Operatory logiczne ! negacja && logiczne AND || logiczne OR Składnia: zmienna=warunek ? wartość_jeśli_prawda :wartość_jeśli_fałsz ; Operator warunkowy ?
21
– styl "wielbłądzi" kapitalizowanie drugiego i następnych słów składowych jest nieobowiązkowy, ale dobra praktyka programowania w Javie DUŻE I MAŁE litery istotne mojPierwszyProgram
22
private int łódź; łódź=10; System.out.println(łódź/2); W nazwach zmiennych i metod można używać polskich liter – dzięki wbudowanemu kodowaniu Unicode
23
niepoprawny kod jest podkreślony na czerwono po lewej stronie na marginesie – ikonka podpowiedzi! Błędy okno z zakładką TASKS – po prawej
24
np. napisanie sysout i CTRL+spacja spowoduje: Pomoce Wszystkie w: Window > Preferences i wybrać Java > Editor > Templates System.out.println();
25
public class Klasa1 { public static void main(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); } Klasa z metodą main instrukcje i deklaracje można przeplatać UWAGA na średniki! ;
26
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 void wyświetl(){ System.out.println(obliczPole()); } Definicja klasy – nie ma metody main
27
Schemat definicji pól i metod definicja pola public|privatetypnazwa [ =wartość]; public|privatetyp|voidnazwa { co ma robić metoda return wyrażenie_typu_typ //jeśli nie void! } definicja metody | - 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
28
package standard; public class program { public static void main(String[] args) { Kwadrat p=new Kwadrat(); } Tworzymy instancję obiektu w klasie ale jakie parametry – wartości pól ma kwadrat? Nowa klasa z metodą main
29
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()); }
30
i teraz… package standard; class program { public static void main(String[] args) { Kwadrat p=new Kwadrat(); p.nadajBok(5); p.wyświetl(); }
31
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()); } albo bardziej elegancko…
32
package standard; public class program { public static void main(String[] args) { Kwadrat k=new Kwadrat(5); k.wyświetl(); } i przy tworzeniu obiektu nadajemy wartość jako argument konstruktora
33
package standard; public class program { public static void main(String[] args) { Kwadrat k1=new Kwadrat (5); Kwadrat k2=new Kwadrat (7); k1.wyświetl(); k2.wyświetl(); } można utworzyć wiele obiektów.. instancji klasy
34
public class Kwadrat { private double bok; private float pozycja; private int kolor; //lepiej obiekt java.awt.Color public Kwadrat (double a) { bok=a; } public Kwadrat (int k) { kolor=k;} public float obliczPole() { return bok*bok; } public void wyświetl(){ System.out.println(obliczPole()); } może być wiele konstruktorów: ale muszą się różnić liczbą lub typem argumentów, bo maja te same nazwy
35
Dziedziczenie public class Figura { private float pozycja; private int kolor; //metody public float obliczPole() { return 0; } public void wyświetl(){ System.out.println(obliczPole()); }
36
public class Kwadrat extends Figura{ private float bok; //pozycja i kolor dziedziczone private int kolor; //lepiej obiekt java.awt.Color public Kwadrat (int a) { bok=a; } @Override // "przesłaniamy" operacje rodzica public float obliczPole() { return bok*bok; }
37
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.