Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie w Java.

Podobne prezentacje


Prezentacja na temat: "Programowanie w Java."— Zapis prezentacji:

1 Programowanie w Java

2 Co to jest Java? Java jest obiektowym językiem programowania stworzonym przez grupę roboczą pod kierunkiem Jamesa Goslinga z firmy Sun Microsystems Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego, czyli postaci wykonywanej przez maszynę wirtualną

3 Pochodzenie Javy Podstawowe koncepcje Javy pochodzą z:
języka Smalltalk - maszyna wirtualna, garbage collection języka C++ - duża część składni i słów kluczowych

4 Historia Javy Bill Joy w raporcie „Further” sugeruje SUNowi stworzenie środowiska obiektowego na bazie C++, W ramach projektu „Green” powstaje język OAK - „Object Application Kernel” (James Gosling), przeznaczony dla aplikacji w elektronice powszechnego użytku, zmiana nazwy na JAVA ze względu na zastrzeżenie nazwy OAK, Pojawia się Netscape zgodny z Javą 1.0, Sun propaguję darmowe środowisko JDK 1.0, Java 2 Nowe oblicze Javy ...

5 Główne źródła informacji o Javie w Internecie
SUN, The source of Java Technology (źródło technologii Javy), Gosling J., Joy B, Steele G. The Java Language Specification. Addison-Wesley, 1996, (specyfikacja języka), SUN, Java 2 SDK software and documentation site (strona źródłowa oprogramowania i dokumentacji Javy), SUN, On-line books & Tutorials (książki i podręczniki do nauki Javy), SUN, The Java Tutorial (Podręcznik Javy)

6 Forum użytkowników Javy

7 Platforma Javy składa się z dwóch elementów:
Java API (Application Programming Interfaces) - interfejsy tworzenia aplikcaji JavaVM (Virtual Machine) - maszyna wirtualna

8 Java API Oprogramowanie pogrupowane w biblioteki (libraries) nazywane też pakietami (packages) Gotowe fragmenty kodu, pogrupowane w pakiety przeznaczone do pewnych celów

9 Maszyna wirtualna interpretuje kod wynikowy (Beta-kod) Javy do kodu wykonywalnego danego systemu operacyjnego i komputera, którego jest nadbudową jest interfejsem pomiędzy uniwersalnym kodem Javy, a różnymi konfiguracjami komputerów

10 JRE i JDK Platforma Javy składa się z dwóch części:
JRE (Java Runtime Environment) – środowisko uruchomieniowe JDK (Java Development Kit) – środowisko tworzenia aplikacji

11 Platforma Javy

12 Środowisko uruchomieniowe JRE
Spełnia trzy zadania: Ładuje aplikacje Java Weryfikuje kod Java Wykonuje kod Java

13 Środowisko uruchomieniowe JRE

14 Środowisko tworzenia aplikacji JDK
JDK (Java Development Kit) składa się z: JRE narzędzi kompilacji źródeł standardowych bibliotek

15 Narzędzia JDK Program Zastosowanie java
Interpreter Javy, pozwalający uruchamiać samodzielnie programy javac Kompilator Javy. javadoc Generator dokumentów Javy. javah generator plików C, tworzący pliki nagłówkowe oraz pliki źródłowe zawierające tekst potrzebny do definiowania klas. javap Disasembler Javy. jdb Debuger Javy.

16 Java Platform SE 6

17 Proces tworzenia aplikacji Javy
Napisanie z pomocą dowolnego edytora tekstu kodu źródłowego programu zawierającego klasę publiczną o nazwie takiej samej jak docelowa nazwa programu np. RycerzJedi Nagranie kodu źródłowego jako pliku o danej nazwie z rozszerzeniem .java, np.RycerzJedi.java

18 Proces tworzenia aplikacji Javy
Kompilacja kodu źródłowego zawartego w pliku z rozszerzeniem .java do pliku docelowego o rozszerzeniu .class zawierającego Beta-kod np. c:\ javac RycerzJedi.java Uruchomienie w środowisku interpretatora Beta-kodu, np. c:\ java RycerzJedi

19 Klasa Javy - konstrukcja
class NazwaKlasy { // pola typ_zmiennej zmienna; ... // konstruktor – metoda o tej samej nazwie co klasa wywołana automatycznie przy tworzeniu obiektu tej klasy NazwaKlasy(typ_argumentu nazwa_argumentu, ..., typ_argumentu nazwa_argumentu) { // tresc_konstruktora } // metody typ_wart_zwracanej nazwaMetody(typ_argumentu nazwa_argumentu, ..., typ_argumentu nazwa_argumentu) { // tresc_metody } // koniec klasy NazwaKlasy

20 Klasa Javy - przykład class RycerzJedi{ // pola String nazwa;
String kolor_miecza; //konstruktor RycerzJedi(String nazwa, String kolor_miecza){ this.nazwa=nazwa; this.kolor_miecza=kolor_miecza; } // metody void opis(){ System.out.println(”Rycerz ”+nazwa+ ” ma ”+kolor_miecza+” miecz.”); }// koniec class RycerzJedi

21 Aplikacja Javy Aplikacja w języku Java to zdefiniowana klasa publiczna wraz z jedną ściśle określoną metodą statyczną o formie: public static void main(String args[]) { // tresc metody } // koniec main

22 String args[] Tablica „args[]” będąca argumentem metody main() jest zbiorem argumentów wywołania aplikacji w ciele której znajduje się metoda Kolejność argumentów jest następująca: argument 1 wywołania umieszczany jest w args[0], argument 2 wywołania umieszczany jest w args[1], itd. Ilość argumentów jest zapisana w polu args.length

23 Przykład main public class Jedi{
public static void main(String args[]){ System.out.println(”Rycerz Luke ma niebieski miecz.”); }// koniec main) }// koniec public class Jedi

24 Proste typy danych

25 Typy proste boolean - typ logiczny
char - typ znakowy (16-bitowy Unicode) byte - wartość całkowita 8-bitowa ze znakiem short - wartosć całkowita 16-bitowa ze znakiem

26 Typy proste int - wartosć całkowita 32-bitowa ze znakiem
long - wartosć całkowita 64-bitowa ze znakiem float - wartosć zmiennoprzecinkowa bitowa,IEEE 754 double - wartosć zmiennoprzecinkowa bitowa,IEEE 754

27 Typ boolean posiada dwie wartości: przykład boolean truth = true; true
false przykład boolean truth = true;

28 Typ char reprezentuje 16-bitowy znak w kodzie Unicode
stałe znakowe muszą być ujęte w pojedynczy cudzysłów (‘ ’) stałe znakowe mają następujące notacje: ‘a’ ‘\t’ ‘\u????’ przykład char znak = ‘A’;

29 Typ String String jest klasą reprezentującą łańcuch znakowy
łańcuch stały musi być umieszczony w podwójny cudzysłów (” ”) przykład String greeting = "Good Morning !! \n";

30 Typy byte, short, int i long
posiadają trzy formy zapisu: decymalną (np. 2) oktalną ( np. 077) heksadecymalną (np. 0xBAAC) Zakresy:

31 Typy float i double formy zapisu: Zakresy: z kropką (np. 2.4)
E or e (add exponential value) (np. 6.02E23) F or f (float) (np F) D or d (double) (np E+306D) Zakresy:

32 Deklaracja zmiennych

33 Tablice Tablice w języku Java są definiowane tylko dynamicznie
Tablica jednowymiarowa typ tabJednowymiarowa [] = new typ[100]; typ [] tabJednowymiarowa = new typ[100]; Tablica dwuwymiarowa typ tabDwuwymiarowa [] = new typ [10] [10]; typ [][] tabDwuwymiarowa = new typ[10][10];

34 Klasy typów danych Znajdują się w bibliotece standardowej java.lang.*
Umożliwiają tworzenie obiektów przechowujących pole wskazanego typu podstawowego Posiadają zbiór metod operujących na wskazanym typie, np. uzyskanie reprezentacji znakowej (toString())

35 Boolean Klasa umożliwiająca stworzenie obiektu przechowującego pole o wartości typu podstawowego boolean Klasa ta daje liczne możliwości przetwarzania wartości typu boolean na inne String toString() Posiada również metody statyczne, np.: static Boolean valueOf(boolean b)

36 Boolean - przykład Boolean isdigit; isdigit = new Boolean(false);
Boolean isdigit = new Boolean(false);

37 Byte Klasa umożliwiająca stworzenie obiektu przechowującego pole o wartości typu podstawowego byte Umożliwia liczne konwersje typu liczbowego byte do innych podstawowych typów liczbowych, np.: int intValue() float floatValue() long longValue() posiada również metody statyczne, np.: static byte parseByte(String s) static byte valueOf(String s)

38 Character Klasa umożliwiająca stworzenie obiektu przechowującego pole o wartości typu podstawowego char Zawiera pola i metod dotyczące obsługi standardowej strony kodowej platformy Javy czyli Unicodu static int getNumericValue(char ch) static boolean isLetter (char ch)

39 Integer, Long Klasy umożliwiające stworzenie obiektów przechowujących pola o wartościach podstawowych typów całkowitych int i long Zawierają metody do konwersji z i do różnych typów danych (w tym statyczne): static int parseInt(String s) - Integer long longValue() static Integer valueOf(String s) - Integer float floatValue()

40 Float, Double Klasy umożliwiające stworzenie obiektów przechowujących pola o wartościach podstawowych typów zmiennoprzecinkowych float i double Zawierają metody do konwersji z i do różnych typów danych (w tym statyczne): static float parseFloat(String s) – Float static double parseDouble(String s) - Double long longValue() static Float valueOf(String s) – Float static Double valueOf(String s) – Double float floatValue()

41 Operatory

42 Operatory to elementy języka służące do generacji nowych wartości na podstawie podanych argumentów wiążą się najczęściej z określonym działaniem na zmiennych prawie wszystkie operatory (z wyjątkiem: ‘=’, ‘==’, ‘!=’, ‘+’, ‘+=’) działają na podstawowych typach danych, a nie na obiektach

43 Klasy operatorów operatory negacji operatory matematyczne
operatory przesunięcia operatory relacji operatory logiczne i bitowe operatory warunkowe operatory przypisania

44 Operatory negacji powodują zmianę wartości zmiennej na przeciwną pod względem znaku int a = 4; x = -a;

45 Operatory matematyczne
służą do wykonywania operacji matematycznych na argumentach zalicza się do nich: mnożenie ‘*’ dzielenie ‘/’ modulo - reszta z dzielenia ‘%’ dodawanie ‘+’ odejmowanie ‘-‘

46 Operatory przesunięcia
działają na bitach w ich reprezentacji poprzez całkowite typy podstawowe danych operator „<<„ powoduje przesunięcie w lewo o zadaną liczbę bitów, natomiast operator „>>„ powoduje przesunięcie w prawo o zadaną liczbę bitów, np.: int liczba = 20; int liczbaL = liczba << 2; int liczbaR = liczba >> 2;

47 Operatory relacji generują określony rezultat reprezentowany przez typ logiczny boolean w wyniku przeprowadzenia porównania zalicza się do nich: ‘a > b‘ - a większe od b ‘a < b’ - a mniejsze od b ‘a >= b‘ - a większe równe jak b ‘a < =b’ - a mniejsze równe jak b ‘a == b‘ - a identyczne z b ‘a != b’ - a różne od b

48 Operatory logiczne generują rezultat reprezentowany przez typ logiczny boolean ‘a && b’ - a i b (rezultatem jest true jeśli a i b są true) ‘a || b ‘ - a lub b (rezultatem jest true jeśli a lub b są true)

49 Operatory bitowe działają podobnie jak operatory logiczne lecz operują na bitach ‘&’ - bitowy AND ‘|’ - bitowy OR ‘^’ - bitowy XOR

50 Operator warunkowy jest skróconą wersją instrukcji warunkowej if
wyrażenie_boolean ? wartość1 : wartość2; gdzie: wyrażenie_boolean oznacza operację generującą jako wynik true lub false; wartość1 oznacza działanie podjęte wówczas, gdy wynik wyrażenia jest true; wartość2 oznacza działanie podjęte wówczas, gdy wynik wyrażenia jest false.

51 Operator warunkowy - przykład
String vader = "Vader"; String anakin = "Anakin"; String s = (vader.equals(anakin)) ? vader : anakin;

52 Operacje przypisania polegają na podstawieniu zmiennej (lewa strona - left value - Lvalue) danej wartości, lub wartości innej zmiennej albo wartości wynikowej operacji (prawa strona - right value - Rvalue) przykłady a = 12; a = b; a= a+b;

53 Instrukcje sterujące

54 Instrukcje sterujące służą do sterowanie przepływem wykonywania instrukcji zalicza się do nich: pętle umożliwiające iteracyjne wykonywanie kodu tak długo aż spełniony jest warunek instrukcje wyboru umożliwiające wybór kodu w zależności od podanego argumentu instrukcje warunkowe umożliwiające wykonanie kodu w zależności od spełnienia podanych warunków instrukcje powrotu umożliwiające przedwczesne zakończenie pętli lub bloku kodu

55 Pętla while powoduje wykonywanie wyrażenia tak długo dopóki rezultat wyrażenia logicznego jest true ilość iteracji jest nieokreślona

56 Pętla while while(wyrażenie_logicze) instrukcja; lub { instrukcje; }

57 Pętla do-while powoduje wykonywanie wyrażenia tak długo dopóki rezultat wyrażenia logicznego jest true ilość iteracji jest nieokreślona

58 Pętla do-while - przykład
int i=0; do{ i++; System.out.println("Moc jest z Wami"); }while(i<10);

59 Pętla do-while do instrukcje; while(wyrażenie_logicze);

60 Różnice między pętlami while i do-while
w pętli while warunek pętli sprawdzany jest na początku w pętli do-while warunek pętli sprawdzany jest na końcu pętla while może nie wykonać się ani razu pętla do-while musi wykonać się przynajmniej jeden raz

61 Pętla for Powoduje wykonanie wyrażenia tyle razy ile to wynika z warunku przedstawionego w wywołaniu pętli Warunek pętli for polega na określeniu wartości startowej iteracji, określeniu końca iteracji oraz kroku

62 Pętla for for(inicjowanie; wyrażenie_logicze ; krok) instrukcja; lub {
instrukcje; }

63 Pętla for - przykład for (int i=0; i<10; i++) {
System.out.println(„Niech moc będzie z Wami”); }

64 Instrukcja wyboru switch
powoduje sprawdzenie stanu wyrażenia_wyboru (zmiennej liczbowej) i w zależności od jej stanu (wartości) wykonywane jest wyrażenie

65 Instrukcja wyboru switch
switch(wyrażenie_wyboru) { case wartość1 : wyrażenie; break; case wartość2 : wyrażenie; break; case wartość3 : wyrażenie; break; case wartość4 : wyrażenie; break; // … default: wyrażenie; }

66 switch - przykład int test = System.in.read(); switch(test){
case 49: System.out.println("Wybrano 1"); break; case 50: System.out.println("Wybrano 2"); break; case 51: System.out.println("Wybrano 3"); break; case 52: System.out.println("Wybrano 4"); /* Brak break; program przejdzie do pola default i wykona odpowiednie instrukcje */ default: System.out.println("Wybrano cos"); }//koniec switch

67 Instrukcja warunkowa if
sprawdza stan logiczny wyrażenia logicznego i jeżeli jest true to wykonywana jest instrukcja w gałęzi if, jeśli istnieje gałąź else i wyrażenie jest false to wykonywane jest wyrażenie po słowie kluczowym else

68 Instrukcja warunkowa if
if (wyrażenie_logiczne) instrukcja; lub { instrukcje; }

69 Instrukcja warunkowa if
if (wyrażenie_logiczne) instrukcja; else lub { instrukcje; }

70 Instrukcja powrotu return
kończy metodę, w ciele której się znajduje i powoduje przeniesienie wartości wyrażenia do kodu wywołującego daną metodę. typ wartości wyrażenia instrukcji return musi być zgodny z typem zadeklarowanym w czasie definicji metody, w ciele której znajduje się instrukcja return składnia: return (wyrażenie);

71 Programowanie obiektowe

72 Cechy programowania obiektowego
Enkapsulacja - ukrywanie pewnych pól lub metod obiektów danej klasy tak, aby były one (i ich modyfikacja) dostępne tylko metodom wewnętrznym danej klasy lub funkcjom z nią zaprzyjaźnionym

73 Cechy programowania obiektowego
Polimorfizm - wykazywanie przez metodę różnych form działania w zależności od tego jaki typ obiektu jest wskazywany przez wskaźnik lub referencję

74 Cechy programowania obiektowego
Dziedziczenie - stworzenie nowej klasy na bazie klasy (klas) już istniejącej (-cych)

75 Klasy Definicja klasy określa jej budowę i zachowanie
[ModyfikatorKlasy] class NazwaKlasy [extends NadKlasa] [implements Interfejsy] { /* definicje metod i pól */ }

76 Klasy - przykłady class EmpInfo { String name; String designation;
String department; } public class MyDate { int day, month, year; public void tomorrow() { // code to increment day

77 Modyfikator klasy abstract - klasa abstrakcyjna
final – brak możliwości utworzenia klas pochodnych public – dostęp do klasy na zewnątrz pakietu private – dostęp do klasy wyłącznie wewnątrz pakietu

78 Pola ModyfikatorPola TypZwracanejWartości NazwaPola

79 Metody ModyfikatorMetody TypZwracanejWartości Nazwa (Typ Argument1, Typ Argument2, ...) [throws Wyjątki] { /* implementacja (kod źródłowy) metody */ }

80 Modyfikatory pól i metod
public - dostęp dla innych metod spoza klasy protected – dostęp dla klas potomnych private – dostęp tylko dla metod dane klasy final – brak możliwości przesłaniania static - odwołanie odbywa się przez nazwę klasy synchronized – dostęp synchroniczny

81 Metody - przykład public int addDays(int days) { // Method code here }

82 Metody statyczne public class GeneralFunction {
public static int addUp(int x, int y) { return x + y; } public class UseGeneral { public void method() { int a = 9; int b = 10; int c = GeneralFunction.addUp(a, b); System.out.println("addUp() gives " + c);

83 Argumenty metod Argumenty będące typami prostymi są przekazywane przez wartość Argumenty będące obiektami są przekazywane przez referencję Pola obiektu wewnątrz metody moą być zmieniane ale referencja jest niezmienna

84 Przeładowanie nazw metod
Zdefiniowanie wielu metod o tej samej nazwie, np. public void println(int i) public void println(float f) public void println(String s) Warunki: muszą mieć różną listę argumentów (ilość, typy) mogą mieć różny typ zwracany

85 Konstruktor Metoda klasy wykonywana w momencie inicjalizacji obiektu tej klasy Musi posiadać nazwę identyczną z nazwą klasy Nie posiada typu zwracanego

86 Konstruktor - przykład
public class Xyz { // member variables go here public Xyz() { // set up the object } public Xyz(int x) { // set up the object with a parameter

87 Przeładowanie konstruktora
public class Employee { private String name; private int salary; public Employee(String n, int s) { name = n; salary = s; } public Employee(String n) { this(n, 0); public Employee() { this(“Unknown”);

88 Tworzenie i inicjalizowanie obiektów
Do alokacji pamięci wykorzystywany jest operator new Wywołanie operatora new Xxxx() powoduje: zaalokowanie pamięci dla obiektu Xxxx wykonanie inicjalizacji pól zadeklarowanych w sposób jawny wywołanie konstruktora

89 Jawna inicjalizacja pól
public class Initialized { private int x = 5; private String name = "Fred"; private MyDate created = new MyDate(); // Accessor methods go here ... }

90 Konstruktor domyślny Znajduje się w każdej klasie która nie posiada jawnie zadeklarowanego konstruktora Pozwala na tworzenie obiektów w sposób: new Xxxx() Jest niedostępny gdy klasa posiada zadeklarowany konstruktor

91 Klasy abstrakcyjne Posiadają modyfikator abstract
Stosuje się wówczas, gdy na danym stopniu opisu ogólnego możliwych obiektów nie można podać rzeczywistej realizacji jednej lub wielu metod Posiadają deklarację metod bez ich implementacji Mogą zawierać pola i metody nieabstrakcyjne public abstract class Drawing { public abstract void drawDot(int x, int y); public void drawLine(int x1, int y1, int x2, int y2) { // draw using the drawDot() method repeatedly. }

92 Interfejsy Wszystkie metody są abstrakcyjne
Zawiera pola typu static i final Zarówno pola jaki i metody są zadeklarowane jako publiczne Pozwala symulować wielokrotne dziedziczenie public interface Transparency { public static final int OPAQUE=1; public static final int BITMASK=2; public static final int TRANSLUCENT=3; public int getTransparency(); }

93 Interfejsy interface SayHello { void printMessage(); }
class SayHelloImpl implements SayHello { void printMessage() { System.out.println("Hello");

94


Pobierz ppt "Programowanie w Java."

Podobne prezentacje


Reklamy Google