Java Język programowania

Podobne dokumenty
JAVA W SUPER EXPRESOWEJ PIGUŁCE

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Programowanie obiektowe

Dokumentacja do API Javy.

Programowanie obiektowe

Podstawowe części projektu w Javie

Programowanie obiektowe

Technologie i usługi internetowe cz. 2

Definiowanie własnych klas

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Enkapsulacja, dziedziczenie, polimorfizm

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe

Podstawy Języka Java

Programowanie obiektowe - 1.

KOTLIN. Język programowania dla Androida

Dziedziczenie. dr Jarosław Skaruz

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Podstawy Programowania Obiektowego

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Kurs WWW. Paweł Rajba.

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Multimedia JAVA. Historia

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Programowanie obiektowe

Definicje klas i obiektów. Tomasz Borzyszkowski

Materiały do zajęć VII

Dziedziczenie. Tomasz Borzyszkowski

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Programowanie 2. Język C++. Wykład 3.

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Platformy Programistyczne Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

2. Składnia, środowisko i konwencje w Javie

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

PHP 5 język obiektowy

Wykład 8: klasy cz. 4

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Programowanie obiektowe

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Programowanie obiektowe i zdarzeniowe

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Zaawansowane programowanie w języku C++ Klasy w C++

Język C++ Programowanie obiektowe

Programowanie w Internecie. Java

1 Atrybuty i metody klasowe

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie obiektowe

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Aplikacje w środowisku Java

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 4

Wykład 4: Klasy i Metody

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Języki i techniki programowania Ćwiczenia 2

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Polimorfizm. dr Jarosław Skaruz

Klasy abstrakcyjne, interfejsy i polimorfizm

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Definiowanie własnych klas

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie obiektowe

Programowanie obiektowe

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wykład 7: Pakiety i Interfejsy

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie obiektowe w C++ Wykład 12

Rozdział 4 KLASY, OBIEKTY, METODY

Zaawansowane programowanie w języku C++ Programowanie obiektowe

TEMAT : KLASY DZIEDZICZENIE

Wykład 6: Dziedziczenie

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Aplikacje w środowisku Java

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Programowanie obiektowe. Wykład 03. Maciej Wołoszyn 17 marca Polimorfizm oraz wczesne i późne wiazanie

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie obiektowe

SWIFT. Zaawansowane Programowanie Obiektowe

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Transkrypt:

Java Język programowania

Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja wątków

Typy danych Typy prymitywne Typy numeryczne: stało przecinkowe: 8bit byte (?),16-bit short, 32-bit int i 64-bit long Zmienno przecinkowe: 32-bit float i 64-bit double Typ znakowy (2 bajty): char Typ binarny: boolean (true/false) Typy Obiektowe Tablice: Point myp[] = new Point[10]; (bezpieczeństwo) (to jest obiekt) np. myp.length Napisy: String str; (to jest obiekt)

Operatory Operators postfix Operator Precedence Precedence expr++ expr-- unary ++expr --expr +expr -expr ~! multiplicative * / % additive + - shift << >> >>> relational < > <= >= instanceof equality ==!= bitwise AND & bitwise exclusive OR ^ bitwise inclusive OR logical AND && logical OR ternary? : assignment = += -= *= /= %= &= ^= = <<= >>= >>>=

Operacje Warunkowa: Pętle if (warunek_logiczny){ Ciąg instrukcji } for (inicjalizacja; warunek; dodatkowa instrukcja){ Ciąg instrukcji } for (Obiekt s : kolekcja) { ciąg instrukcji; } if (warunek_logiczny){ Ciąg instrukcji } else { Ciąg instrukcji } while (warunek_logiczny){ } do { ciąg instrukcji; } while (warunek_logiczny);

Zasady panujące w Javie Jeden plik to jedna klasa (publiczna) Nazwy klas i nazwy plików muszą być identyczne (!!!) Nazwy klas piszemy dużą literą Nazwy zmiennych i metod piszemy małą literą, jeśli nazwy wielowyrazowe to nie używamy łączników tylko sklejamy wyrazy począwszy od dużej litery np. zmienna: imiepracownika

Organizacja programu Programy składają się z pakietów (package) Każda klasa powinna należeć do pakiety, jeśli nie to pakiet domyślne Każdy pakiet w systemie plików reprezentowany jest przez katalog Pakiety można zagnieżdżać co odpowiada tworzeniu podkatalogów Kompilacja powoduje zamianę plików *.java na pliki *.class (z zachowaniem struktury katalogów) Pliki *.class można łączyć tworząc plik jar Plik jar to zwykłe archiwum zip Dodatkowe zewnętrzne biblioteki ustawiane poprzez zmienną CLASPATH

Organizacja programu Podział na pakiety plików Organizacja

Programowanie obiektowe a Java Oprócz typów prymitywnych wszystko jest obiektem!!! Obiekt to zbiór (zestaw) danych uzupełniony o zestaw funkcji (zwanych metodami) przeznaczonych do operacji na tych danych patrz struct w C lub record w Pascalu

Programowanie obiektowe Enkapsulacja Abstrakcja Polimorfizm Dziedziczenie

Programowanie obiektowe Enkapsulacja Dane w obiekcie schowane są za zbiorem funkcji. Dane opisują stan Metody opisują zachowanie obiektu Z zewnątrz mamy jedynie dostęp do zachowania. Stan ukryty jest za metodami

Programowanie obiektowe Abstrakcja Zestaw metod (czyli zachowanie) są zdefiniowane poprzez klasę obiektu. Wiemy jak dany obiekt będzie sią zachowywał, bo klasa obiektu jest niezmienna.

Programowanie obiektowe Polimorfizm Działanie metod (zachowanie) zależne od implementacji, możliwość redefiniowania działania metod UWAGA: W Javie wszystkie metody są wirtualne (virual) Innymi słowy: taka sama wiadomość wysłana do różnych obiektów prowadzi do różnych zachowań, zależących od natury obiektów odbierających wiadomość

Programowanie obiektowe Dziedziczenie Na podstawie już utworzonych klas definiowanie nowych, bardziej szczegółowych klas. Tworząc obiekt B pozwala na przejęcie funkcjonalności obiektu bazowego A i rozszerzenie jego funkcjonalności

Programowanie obiektowe Klasa a obiekt Klasa szablon opisujący zawartość obiektu, definiuje jego funkcjonalność (kody źródłowe metod) oraz pola (zmienne) i ich typy Obiekt rzeczywisty twór utworzony na bazie klasy. Klasa Obiekt

Programowanie obiektowe Klasa a obiekt

Konstruktor Konstruktor to metoda uruchamiana przetworzeniu obiektu. Służy inicjalizacji pój obiektu Pola obiektu, Zmienne definiujące jego stan Konstruktor

Konstruktor Konstruktor wywoływany jest tylko podczas tworzenia obiektu słówko new

Gdzie jest konstruktor

Programowanie obiektowe Do obiektów odwołujemy się przez referencje Referencja to ulepszony wskaźnik, wskazujący adres w pamięci RAM danego obiektu Wskaźnik

ziedziczenie Bezpośredni dostęp do pól obiektu Dostęp jedynie do metod obiektu

Tworząc Pracownika musimy stworzyć obiekt osoba. Osoba nie ma konstruktora domyślnego, Więc wywołujemy jawnie konstruktor klasy bazowej Dziedziczenie W przypadku konfliktu dostęp do pól obiektu poprzez słowo kluczowe this Polimorfizm Zmieniamy działanie metody wypisz() Zgodnie z konwencją dodać adnotację @Override (choć nie wymagane)

Dziedziczenie Ponieważ dziedziczymy to Pracownik jest też obiektem klasy Osoba

Dziedziczenie Wywołanie Wypisz obiektu klasy Pracownik Która metoda zostanie wywołana? Z klasy Osoba czy Pracownik

Dziedziczenie Wywołanie Wypisz obiektu klasy Pracownik Która metoda zostanie wywołana? Z klasy Osoba czy Pracownik

Dziedziczenie Metoda wypisz klasy osoba Można jednak wewnątrz klasy pochodnej wywołać metodę klasy bazowej przez super Tak powstaje rekurencja wywołamy samych siebie

Dziedziczenie i implementacja W Javie dziedziczenie jedno bazowe (nie można dziedziczyć po więcej niż jednej klasie) Można implementować intrfejsy (dowolną liczbę interfejsów) Interfejs określa jedynie listę metod publicznych dostępnych w klasie go implementującej. Zachowuje się jak klasa bazowa ale definiuje jedynie deklaracje metod klasy

Implementacja Pracownik jest IstotaZywa Stając się IstotaZywa mam dostęp jedynie do metod wypisz i jakdlugozyje

Rzutowanie Dobrze Źle

Modyfikatory dostępu Access Levels Modifier Class Package Subclass World Public Y Y Y Y protected Y Y Y N (no modifier) Y Y N N private Y N N N

Klasy abstrakcyjne Skrzyżowanie klas z interfejsami Używamy jak zwykłej klasy (dziedziczenie) ale nie można stworzyć instancji klasy. Wymusza na programiście własnoręczne zaimplementowanie określonej funkcjonalności.

static i final Dla metod final oznacza że metoda nie może być pokryta (override) Dla pól final oznacza że pole nie może ulec zmianie po inicjalizacji (const). Dla klas final oznacza że po klasie nie można dziedziczyć Nie wolno bo ClassA jest final Nie wolno bo a jest final Nie wolno bo geta() jest final

static i final Dla metod static oznacza że metoda jest związana z klasą a nie obiektem (nie ma dostępu do pól obiektu) (troche jak programowanie strukturalne) Dla pól static oznacza że pole jest związane z klasą a nie obiektem. Dla klas brak, chociaż

Klasy zagnieżdżone Tak nie wolno (Klasy statycznie nie mają dostępu do pól klasy zewnętrznej) Tak nie wolno (brak instancji klasy nadrzędnej)

Klasy anonimowe Możliwość definiowania klasy w miejscu jej użycia bez określania jej nazwy. Klasy anonimowe są deklarowane i inicjalizowane jednocześnie Klasy anonimowe muszą rozszerzać albo implementować jeden i tylko jeden interfejs Ponieważ klasy anonimowe nie mają nazwy, więc można je użyć tylko raz

Klasy anonimowe

Enumeratory Enumeratory typ wyliczeniowy. enum (stosowany gdy chcemy przedefiniować określoną listę wyboru np. dni tygodnia, dostępne opcje itp.) Rozszerzamy klasę abstrakcyjną Użycie enumeratora

Enumeratory Instrukcja SWITCH CASE Uwaga!!! Poniżej Javy 7.0 nie można Stosować switch case dla String ów, jedynie dozwolone typy prymitywne i wyliczeniowe

Enumeratory Enumerator jest obiektem więc może mieć pola i metody: