Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Podobne dokumenty
Dokumentacja do API Javy.

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

Klasy abstrakcyjne, interfejsy i polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm

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

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

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

Programowanie obiektowe

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

Polimorfizm. dr Jarosław Skaruz

Java Język programowania

Singleton. Cel: Przykład: Zastosowanie: Zapewnienie, że klasa ma tylko jedną instancję i dostarczenie globalnego dostępu do niej.

Multimedia JAVA. Historia

Kurs WWW. Paweł Rajba.

Dziedziczenie. dr Jarosław Skaruz

Klasy abstrakcyjne i interfejsy

Wykład 7: Pakiety i Interfejsy

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

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

Programowanie obiektowe

PHP 5 język obiektowy

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

Programowanie obiektowe

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

Definiowanie własnych klas

Java niezbędnik programisty spotkanie nr 3. Modyfikatory, jednostki kompilacji, tworzenie/inicjalizacja, odśmiecanie/ finalizacja...

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

Wykład 8: klasy cz. 4

Aplikacje w środowisku Java

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Wykład 6: Dziedziczenie

Dziedziczenie. Tomasz Borzyszkowski

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Technologie i usługi internetowe cz. 2

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

Programowanie obiektowe - 1.

Programowanie obiektowe

Aplikacje w środowisku Java

Podstawy programowania III

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

KLASY, INTERFEJSY, ITP

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

Rozdział 4 KLASY, OBIEKTY, METODY

10. Programowanie obiektowe w PHP5

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

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

1 Atrybuty i metody klasowe

Przykład -

Programowanie w Internecie. Java

Programowanie obiektowe

Programowanie obiektowe

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

Pakiety i interfejsy. Tomasz Borzyszkowski

Wprowadzenie do projektu QualitySpy

Java: interfejsy i klasy wewnętrzne

Definiowanie własnych klas

Do czego służą klasy?

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Interfejsy i klasy wewnętrzne

Wykład 4: Klasy i Metody

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Materiały do zajęć VII

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

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

Java podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.

Podstawy Języka Java

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Programowanie obiektowe

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

Programowanie obiektowe

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Język Java część 2 (przykładowa aplikacja)

Klasy cd. Struktury Interfejsy Wyjątki

Wątki w Javie. Piotr Tokarski

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

Template method (metoda szablonowa)

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Kompozycja i dziedziczenie klas

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

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

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

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Programowanie obiektowe

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Diagramy klas. dr Jarosław Skaruz

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe w języku

.NET Klasy, obiekty. ciąg dalszy

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

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

Transkrypt:

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm

Programy w Javie składają się z pakietów Pakiety zawierają definicje klas i interfejsów Klasa lub interfejs zawarty w pakiecie jest dostępny, kiedy zostanie zadeklarowany jako publiczny public Pakiet sub zadeklarowany jako podpakiet pakietu głównego super będzie oznaczony jako super.sub mluckner@mini.pw.edu.pl 3/5/2014 2

pl.com.neostrada.basia pl.com.plus.lte.basia pl.edu.pw.java.demo pl.edu.pw.java.project pakiet folder 3

Definicja klasy umieszcza ją w hierarchii klas. Klasa definiuje pola i zachowania obiektów. Każdy obiekt musi być instancją klasy. mluckner@mini.pw.edu.pl 3/5/2014 4

abstract public final mluckner@mini.pw.edu.pl 3/5/2014 5

Tylko taka klasa może zawierać metody abstrakcyjne (nie zaimplementowane) Ale może mieć też inne metody Nie można utworzyć instancji takiej klasy Rzucany wyjątek InstantiationException Jest klasą nadrzędną dla innych klas Jeżeli podklasy nadpiszą wszystkie metody abstrakcyjne to nie będą klasami abstrakcyjnymi mluckner@mini.pw.edu.pl 3/5/2014 6

public Klasa dostępna na zewnątrz paietu final Nie może mieć podklas Klasa nie może być jednocześnie finalna i abstrakcyjna mluckner@mini.pw.edu.pl 3/5/2014 7

Może być dokonana bezpośrednio Lub wywodzona z klasy nadrzędnej i interfejsu mluckner@mini.pw.edu.pl 3/5/2014 8

static wspólne dla wszystkich obiektów final brak możliwości nadpisania transient nie jest zapisywane w pamięci stałej volatile pole, które będzie modyfikowane przez wiele wątków 9

Wspólne dla wszystkich instancji klasy (nawet jeżeli takie nie istnieją) Tworzone przed utworzeniem obiektów tylko raz podczas działania aplikacji Inicjalizacja nie może zależeć od niestatycznych pól, które są tworzone podczas tworzenia obiektu Są niezmienne, ale mogą być nadpisane mluckner@mini.pw.edu.pl 3/5/2014 10

abstract Definicja bez implementacji static Metoda wspólna dla wszystkich obiektów final Metoda nie może być nadpisana synchronized Metoda synchronizowana podczas pracy wielowątkowej 11

12

13

Interfejs określa możliwe zachowania Definicja zawiera metody abstrakcyjne i pola statyczne Jedna klasa może mieć wiele interfejsów 14

15

Idea klasy Tylko jedna nadklasa Może zawierać implementację Określa zachowanie klasy Wiele interfejsów Tylko abstrakcyjne metody i pola statyczne abstract class interface mluckner@mini.pw.edu.pl 3/5/2014 16

Wszystkie składowe są publiczne Wszystkie metody są abstrakcyjne Wszystkie pola są statyczne, finalne i publiczne Dlatego modyfikatory są zbędne Za to każde pole musi być zainicjowane 17

Najwyżej w hierarchii jest zawsze klasa Object Klasa podstawowa jest klasą nadrzędną, a wyprowadzana podklasą Klasa może być podklasą tylko jednej klasy nadrzędnej Klasa może implementować wiele interfejsów Instancja klasy jest zarazem instancją wszystkich klas nadrzędnych 18

Klasa może być package (domyślnie) public Elementy klas mogą być public protected private (domyślne) mluckner@mini.pw.edu.pl 3/5/2014 19

W górę hierarchii Od podklasy do klasy nadrzędnej Z klasy do interfejsu Zawsze bezpieczna i automatyczna 20

W dół hierarchii Od klasy nadrzędnej do podklasy Wymaga nadzoru podczas wykonywania i może zgłaszać błędy Określana przez operator zrzutowania mluckner@mini.pw.edu.pl 3/5/2014 21

Exception in thread "main" java.lang.classcastexception: pl.edu.mini.programming3.lecture02.person cannot be cast to pl.edu.mini.programming3.lecture02.employee 22

Point2d p1 = new Point3d(); Point2d jest typem deklarowanym obiektu p1 Point3d is typem aktualnym obiektu p1 23

Metody statyczne są wywoływane dla typu declarowanego Netody niestatyczne są wywoływane dla typu aktualnego Zarówno statyczne jak i niestatyczne pola są odczytywane z typu declarowanego metody pola mluckner@mini.pw.edu.pl 3/5/2014 24

Goodnight, Tom x:10 y:20 25