Programowanie w Javie wykład 8 Interfejsy
|
|
- Jan Kalinowski
- 5 lat temu
- Przeglądów:
Transkrypt
1 1 Programowanie w Javie wykład 8 Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki programowania, PWN, C. S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice 2013 S. Stępniak JDK 8 WPROWADZENIE DO WYBRANYCH ZAGADNIEŃ
2 INTERFEJSY 2 Interfejs (deklarowany za pomocą słowa kluczowego interface) to: zestaw publicznych abstrakcyjnych metod (ich nagłówków) i/lub publicznych stałych (statycznych) Poczynając od wersji 8 Javy, w definicji interfejsu mogą się znaleźć definicje publicznych metod statycznych oraz publicznych domyślnych metod niestatycznych, poprzedzone słowem kluczowym default Od Javy 9 interfejsy mogą ponadto zawierać metody prywatne. Implementacja interfejsu w klasie - to zdefiniowanie w tej klasie wszystkich abstrakcyjnych metod interfejsu. To że klasa ma implementować interfejs X oznaczamy słowem kluczowym implements X. Każda klasa implementująca interfejs musi zdefiniować WSZYSTKIE jego metody abstrakcyjne albo musi być zadeklarowana jako klasa abstrakcyjna. W Javie klasa (oprócz dziedziczenia innej klasy) może implementować dowolną liczbę interfejsów. Zatem w Javie nie ma wielodziedziczenia klas, ale za to jest możliwe wielodziedziczenie interfejsów.
3 Interfejsy 3 Ogólna postać definicji interfejsu : [public] interface NazwaInterfejsu [extends other interfaces]{ typ nazwazmiennej = wartosc;... typ nazwametody(lista_parametrów);... Uwagi: modyfikator dostępu public przed słowem interface może nie występować - wówczas interfejs jest dostępny tylko w bieżącym pakiecie, pola to zawsze publiczne stałe statyczne nawet jeśli nie użyjemy żadnych modyfikatorów kompilator traktuje je jako public static final metody to: metody abstrakcyjne (bez implementacji) (ponieważ do tej pory interfejsy zawierały tylko metody abstrakcyjne, to słowo abstract pomijamy), metody domyślne default, metody statyczne oraz metody prywatne Interfejsy - podobnie jak klasy - wyznaczają typy danych (referencyjne). Możemy korzystać z operatora instanceof oraz rzutowania.
4 Interfejsy 4 Ogólna postać definicji klasy implementującej interfejs: [modyfikator] class NazwaKlasy [extends KlasaBazowa] implements NazwaInterfejsu_1,..., NazwaInterfejsu_n{... Uwagi: klasa może implementować wiele interfejsów, klasa musi definiować wszystkie metody implementowanych interfejsów albo musi być zadeklarowana jako klasa abstrakcyjna klasa może zawierać własne (nie będące częścią interfejsu) pola i metody.
5 Interfejsy - przykład Przykład: Interfejs określający abstrakcyjną funkcjonalność "wydającego głos" : public interface Speakable { int QUIET = 0; int LOUD = 1; // <- publiczne stałe statyczne // domyślnie public static final String getvoice(int voice); // <- metoda abstrakcyjna; // ponieważ w interfejsie mogą być // tylko publiczne metody abstrakcyjne, // specyfikatory public i abstract niepotrzebne a jego implementacja w przykładowej klasie Wodospad: public class Wodospad implements Speakable public String getvoice(int voice) { // metody interfejsu muszą być zdefiniowane jako publiczne! if (voice == LOUD) return "SZSZSZSZSZSZ..."; else if (voice == QUIET) return "szszszszszsz..."; else return "?"; 5
6 Interfejsy - przykład 6 Rozważmy teraz interfejs, opisujący obiekty zdolne się poruszać: public interface Moveable { void start(); void stop(); Zauważmy, że ta funkcjonalność dotyczy zarówno Psa, jak i pojazdów np. Samochodu. Zdefiniujmy ponownie klasę Zwierz jako abstrakcyjną: public abstract class Zwierz { private String name = "bez imienia"; public Zwierz() { public Zwierz(String name) { this.name = name; public abstract String gettyp(); public String getname() { return name;
7 Interfejsy - przykład public class Pies extends Zwierz implements Speakable, Moveable { public Pies() { public Pies(String name) { //nadpisujemy metodę z klasy Zwierz public String gettyp() { return //implementujemy metodę z interfejsu Speakable public String getvoice(int voice) { if (voice == LOUD) return "HAU... HAU... HAU... "; else return "hau... //implementujemy metodę z interfejsu Moveable public void start() { System.out.println("Pies " + getname() + " //implementujemy metodę z interfejsu Moveable public void stop() { System.out.println("Pies " + getname() + " stanął"); 7
8 Interfejsy - przykład 8 public class TestInterfaces { public static void main(string[] args) { Pies kuba = new Pies("Kuba"); kuba.start(); System.out.println(kuba.getVoice(Speakable.LOUD)); kuba.stop(); Wyjście: Pies Kuba biegnie HAU... HAU... HAU... Pies Kuba stanął Zmienna kuba jest typu Pies, a to znaczy, że jest również typu Zwierz oraz typu Speakable i Moveable. Dzięki koncepcji interfejsów uzyskaliśmy poszerzenie polimorfizmu. Polimorficzne odwołania są teraz możliwe nie tylko wzdłuż hierarchii dziedziczenia klas, ale również w poprzek.
9 Interfejsy przykład polimorfizmu 9 public class TestInterfaces { public static void rozmowa(speakable... rozmowcy) { for (Speakable rozmowca : rozmowcy) { if (rozmowca instanceof Zwierz) System.out.print(((Zwierz)rozmowca).getTyp() + ": "); System.out.println(rozmowca.getVoice(Speakable.LOUD)); public static void main(string[] args) { System.out.println("Rozmowa:"); rozmowa(new Pies("Burek"), new Wodospad(), new Pies("Azor")); Wynik: Rozmowa: Pies: HAU... HAU... HAU... SZSZSZSZSZSZ... Pies: HAU... HAU... HAU...
10 10 Interfejsy metody domyślne W Javie 8 wprowadzono możliwość definiowania metod domyślnych poprzedzonych słowem kluczowym default. W takim przypadku w interfejsie zawarta jest implementacja tych metod. Klasy implementujące ten interfejs mogą, ale nie muszą przedefiniowywać takie metody, chyba że klasa implementuje dwa lub więcej interfejsów zawierających metodę o identycznej sygnaturze. Wówczas musi ona zostać przedefiniowana w klasie. Przykład: W interfejsie Speakable zdefiniujmy domyślną metodę bezparametrową getvoice(): public interface Speakable { int QUIET = 0; // <- publiczne stałe statyczne int LOUD = 1; // domyślnie public static final String getvoice(int voice); // <- metoda abstrakcyjna; default String getvoice(){ return getvoice(quiet); Nie zmieniając nic w klasie Pies, dla obiektu tej klasy można np. Pies kuba = new Pies("Kuba"); System.out.println(kuba.getVoice()); //hau... hau...
11 Interfejsy metody domyślne 11 Kolejny przykład metoda domyślna foreach z interfejsu Iterable // (stripped down version of the real Iterable.java) public interface Iterable<T> { Iterator<T> iterator(); // As in prior versions // example of a new JDK 8 default method default void foreach(consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { Przykład: action.accept(t); String[] names={"ala", "Ola", "Ula"; Stream.of(names).forEach(name -> System.out.println(name)); Metody domyślne umożliwiają prostą rozbudowę interfejsów. Dzięki ich wprowadzeniu można było rozbudować wybrane interfejsy Javy, tak by mogły być używane z nowo wprowadzonymi elementami programowania funkcyjnego.
12 Interfejsy metody domyślne - dziedziczenie 12 DZIEDZICZENIE METOD DOMYŚLNYCH public interface A { default int foo(integer n) { return n + n; public interface B { default int foo(integer n) { return n + 2; public class C implements A,B public int foo(integer n) { return A.super.foo(n);
13 Interfejsy funkcyjne 13 INTERFEJSY FUNKCYJNE to interfejsy posiadające dokładnie jedną metodę abstrakcyjną (mogą posiadać dowolnie wiele metod public interface Command<T,V> { V execute(t parameter); default void itmaycontainsdefaultmethod() { //... default Long andanotherdefaultmethod() { return 20L; - opcjonalnie
14 Metody statyczne w interfejsach 14 Jak wspominaliśmy wcześniej interfejsy oprócz metod abstrakcyjnych i metod domyślnych mogą zawierać również metody statyczne: public interface InterfaceWithStaticMethod { public static String itworks(int number) { return String.format("Works for %d", number); Uwaga: Znak % -znacznik formatowania, np.: double[] arr = { , 35.7, 3.0, 9; for ( double el : arr ) { System.out.format( "%.2f ", el ) ;//2-miejsca po przecinku output: 23,59 35,70 3,00 9,00
15 Metody prywatne w interfejsach Java 9 15 Od Java 9 w interfejsach mogą występować: stałe (constant variables) metody abstrakcyjne (abstract methods) metody domyślne (default methods) metody statyczne (static methods) metody prywatne (private methods) prywatne metody statyczne (private static methods) Prywatne metody i prywatne metody statyczne zostały dodane do interfejsów w Java 9. Zatem od Java 9 możemy umieszczać metody prywatne w interejsach używając modyfikatora private (tak jak w przypadku zwykłych metod prywatnych). W metodach tych możemy umieszczać np. powtarzający się w innych metodach kod. Ponadto umożliwiają one ukrycie części kodu przed odbiorcą. Oczywiście metody private nie mogą być jednocześnie abstract. Metody te muszą być zaimplementowane (mieć swoje ciało), gdyż klasy potomne ich nie dziedziczą ( więc nie mogą w nich być zaimplementowane).
16 Metody prywatne w interfejsach Java 9 interface Calc{ default int addnaturalnumbers(int... nums){ return add(nums); default int addevennumbers(int... nums){ return add(nums); default int addoddnumbers(int... nums){ return add(nums); private int add(int...nums){//w funkcji private powtarzający się kod int sum = 0; for(int i:nums){ sum = sum+i; return sum; public class MyCalc implements Calc{ public static void main(string[] args){ MyCalc mycalc = new MyCalc(); int sumofnaturalnumbers = mycalc.addnaturalnumbers(1,2,3,4,5); System.out.println(sumOfNaturalNumbers); int sumofevens = mycalc.addevennumbers(2,4,6); System.out.println(sumOfEvens); int sumofodds = mycalc.addoddnumbers(1,3,5); System.out.println(sumOfOdds); 16
17 17 public interface DBLogging { String MONGO_DB_NAME = "ABC_Mongo_Datastore"; String NEO4J_DB_NAME = "ABC_Neo4J_Datastore"; String CASSANDRA_DB_NAME = "ABC_Cassandra_Datastore"; Metody prywatne w interfejsach Java 9 default void loginfo(string message) { log(message, "INFO"); default void logwarn(string message) { log(message, "WARN"); default void logerror(string message) { log(message, "ERROR"); default void logfatal(string message) { log(message, "FATAL"); private void log(string message, String msgprefix) { // Step 1: Connect to DataStore // Step 2: Log Message with Prefix and styles etc. // Step 3: Close the DataStore connection // Any other abstract, static, default methods
18 Mixin 18 Dzięki metodom domyślnym staje się możliwe wielodziedziczenie implementacji metod- mixin. MIXIN oznacza kombinację metod z różnych klas, która może być dodana do innej klasy interface Bear{ default String bear(){return "Bear"; interface Cat{ default String cat(){return "Cat"; class Bintorung implements Bear, Cat{ private String name; public Bintorung(String name){this.name=name; public String tostring(){ return " nazywam się" + name+ "\n jestem Bintorung,\n czyli" + bear() + cat();
19 Mixin 19 Przez implementację dwóch interfejsów w klasie Bintorung uzyskaliśmy mixin domyślnych (zaimplementowanych) metod tych interfejsów, co pozwala na rzecz obiektu Bintorung wywoływać metody: bear() i cat(). Dzięki temu nasz bintorung- zwierze z Azji, znane też jako bearcat, po wykonaniu: Bintorung wayan = new Bintorung("Wayan"); System.out.println(wayan); może o sobie powiedzieć Nazywam się Wayan i jestem Bintorung, czyli BearCat
Programowanie w środowisku graficznym- wykład 5 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Interfejsy
1 Programowanie w środowisku graficznym- wykład 5 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie
Aplikacje w Javie wykład 5 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Interfejsy
Aplikacje w Javie wykład 5 1 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne
Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Dokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
Wykład 7: Pakiety i Interfejsy
Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,
Polimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Klasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Programowanie w Javie - wykład 3
Pakiety import Klasy dziedziczenie Programowanie w Javie - wykład 3 Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Interfejsy i klasy wewnętrzne
Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw
Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne
1 Programowanie w Javie wykład 7 Klasy c.d. (przeciążanie metod, polimorfizm) Metody i klasy abstrakcyjne Bloki inicjalizacyjne Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
Definiowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java
Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment
Programowanie obiektowe i zdarzeniowe
Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie
Programowanie w Internecie. Java
Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java
PHP 5 język obiektowy
PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje
Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Przykład -
Polimorfizm Przykład - http://rpodhajny.wordpress.com klasa bazowa A, oraz klasy pochodne B1, B2,, Bn (dziedziczące po klasie bazowej). niektóre klasy pochodne chcą mieć możliwość skorzystania z metody
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki
Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza
Akademia ETI Wprowadzenie do programowania w Javie PG Java User Group 1 Dlaczego Java? Najpopularniejszy język programowania obiektowego Łatwy w nauce Dostępny na wiele platform 2 Platformy Java Java Standard
Java Język programowania
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
Programowanie obiektowe
Programowanie obiektowe Laboratorium 10 - klasy abstrakcyjne i interfejsy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 17 maja 2017 1 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania
Programowanie w środowisku graficznym- wykład 2 Java - Klasy
Programowanie w środowisku graficznym- wykład 2 Java - Klasy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Programowanie w Javie - wykład 4
Klasy dziedziczenie Programowanie w Javie - wykład 4 Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych
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
JAVA- wykład 2 Klasy
JAVA- wykład 2 Klasy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ C. S. Horstmann, G. Cornell,
Programowanie obiektowe
Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami
Programowanie obiektowe
Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc
Enkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Języki i metody programowania Java INF302W Wykład 2 (część 1)
Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja
Aplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Wykład 6: Dziedziczenie
Wykład 6: Dziedziczenie Dziedziczenie Jeden z filarów obiektowości. Budowa jednej klasy na bazie drugiej, przez dodawanie/przesłanianie jej składowych: nad-klasa klasa bazowa pod-klasa klasa pochodna od
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Java jest językiem dynamicznym
.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Java: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Programowanie obiektowe
Programowanie obiektowe Wykład 6: Klasy abstrakcyjne. Interfejsy. 4/7/2013 S.Deniziak: Programowanie obiektowe - Java 1 Klasy ostateczne class Ogon { final class Dinozaur { int i = 7; int j = 1; Ogon x
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy
PODSTAWOWE ELEMENTY JĘZYKA JAVA TYPY DANYCH, OPERATORY I INSTRUKCJE 1. Definicja klasy, dziedziczenie, implementowanie metod interfejsów class nazwa_klasy //ciało klasy Klasa: przed słowem class moŝe wystąpić
Platformy Programistyczne Wykład z Javy dla zaawansowanych
Platformy Programistyczne Wykład z Javy dla zaawansowanych Agata Migalska 20 maja 2014 Plan wykładu 1 Polimorfizm i dziedziczenie 2 Życie i śmierć obiektu 3 Poziomy oraz modyfikatory dostępu 4 Obsługa
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
Programowanie obiektowe
Programowanie obiektowe Wykład 13: RTTI 6/2/2013 S.Deniziak: Programowanie obiektowe - Java 1 Po co informacja o typie obiektu? Polimorfizm Kolekcje Deserializacja 6/2/2013 S.Deniziak: Programowanie obiektowe
Java SE Laboratorium nr 2. Temat: Obiektowość
Java SE Laboratorium nr 2 Temat: Obiektowość 1. Typy proste a. byte 8 bit b. short 16 bit c. int 32 bit d. long 64 bit e. float (32-bitowy standard IEEE 754) f. double (64-bitowy standard IEEE 754) g.
public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:
Klasy Metody [ModyfikatorMetody] TypZwrotny Nazwa (Typ arg1, ) { // implementacja metody ModyfikatorMetody może być kombinacją wyrażeń: modyfikator widzialności public dostępna dla metod spoza klasy protected
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Platformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13
Klasy Klasa to grupa obiektów, które mają wspólne właściwości, a obiekt jest instancją klasy. Klasa w języku Java może zawierać: pola - reprezentują stan obiektu (odniesienie do pola z kropką), methods
Java - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
KLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
Wykład 5 Okna MDI i SDI, dziedziczenie
Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie
Wykład 5: Więcej o Klasach i Metodach
Wykład 5: Więcej o Klasach i Metodach Przeciążanie Metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą
JDK 8 WPROWADZENIE DO WYBRANYCH ZAGADNIEŃ
JDK 8 WPROWADZENIE DO WYBRANYCH ZAGADNIEŃ by Szymon Stępniak / @wololock / crafted with reveal.js ABOUT ME Software Developer @ Ideazone (Torun, Poland) Java/Groovy, Grails contributor, TDD-holic @wololock
Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Języki Programowania II Wykład 3. Java podstawy. Przypomnienie
Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania
Definicje klas i obiektów. Tomasz Borzyszkowski
Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy
Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Nullable type, null-coalesce,
Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Multimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Definiowanie własnych klas
Abstrakcja Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Świat rzeczywisty jest bardzo złoŝony i nie jest moŝliwe
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Język JAVA podstawy. Wykład 4, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 3 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Klasy cd. Struktury Interfejsy Wyjątki
Klasy cd. Struktury Interfejsy Wyjątki Struktury Struktura pozwala na zdefiniowanie typu danych, który nie charakteryzuje się zbyt złożoną funkcjonalnością (np. punkt, kolor, etc). Do definiowania struktury
Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.
Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik
Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub
PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static
Podstawowe części projektu w Javie
Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych
Programowanie w Javie wykład 9 Klasy wewnętrzne, klasy anonimowe Klasy opakowujące
1 Programowanie w Javie wykład 9 Klasy wewnętrzne, klasy anonimowe Klasy opakowujące Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko,
Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!
Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed
Dziedziczenie i interfejsy
Dziedziczenie i interfejsy Wyróżnia się dwa sposoby ponownego wykorzystania klas: Kompozycję oznacza, że obiekt jest zawarty w innym obiekcie i jest reprezentowana przez relację całość-część. Przykładowo
Aplikacje w środowisku Java - wykład 1
Aplikacje w środowisku Java - wykład 1 Java-podstawy powtórzenie Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/
Polimorfizm a klasy generyczne w języku Java. Zdzisław Spławski 1
Polimorfizm a klasy generyczne w języku Java Zdzisław Spławski 1 Klasyfikacja polimorfizmów Polimorfizm ogólnie oznacza wielopostaciowość i umożliwia przypisanie różnych
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Programowanie obiektowe
Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo
Dziedziczenie. » Dodawanie nowych elementów klasy (składowych funkcyjnych, danych składowych)» Modyfikacje odziedziczonych składowych funkcyjnych
Dziedziczenie Dziedziczenie umożliwia definiowanie nowej klasy przez rozbudowanie już istniejącej. Klasa wprowadzana całkowicie dziedziczy elementy starej klasy.» Dodawanie nowych elementów klasy (składowych
Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
Template method (metoda szablonowa)
1/11 Template method (metoda szablonowa) Cel: Definiuje szkielet algorytmu przy pomocy operacji podstawowych. Konkretyzacja poszczególnych kroków składowych pozostawiona klasom potomnym mogą być one zmieniane
10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Programowanie obiektowe w VB cz 2
Programowanie obiektowe w VB cz 2 Interfejsy Interfejsy są listą metod, właściwości, zdarzeń i indeksowników. Jeśli jakaś klasa implementuje jakiś interfejs, znaczy to, że użytkownik tej klasy może skorzystać