Programowanie w języku Java WYKŁAD
|
|
- Eleonora Sobczak
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational pzabawa@pk.edu.pl www:
2 WYKŁAD 4 Uzupełnienia Wykładu 2 Klasy zagnieżdżone Domknięcia dr inż. Piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki
3 Polimorfizm metody wirtualne Wszystkie metody w Javie są wirtualne, za wyjątkiem: metod statycznych (bo przecież nie dotyczą obiektów), metod deklarowanych ze specyfikatorem final (co oznacza, że postać metody jest ostateczna i nie może być ona przedefiniowana w klasie pochodnej, a jak nie ma przedefiniowania, to niepotrzebna jest wirtualność), metod prywatnych (do których odwołania z innych metodach danej klasy nie są polimorficzne, bo metody prywatne nie mogą być przedefiniowane).
4 Polimorfizm metody wirtualne Przedefiniowując metody w podklasach warto używać Daje ona sygnał kompilatorowi, że intencją programisty jest przedefiniowanie metody.
5 Adnotacje Zakład Inżynierii Oprogramowania Adnotacje są mechanizmem uzupełniania kodu o informacje wykraczające poza możliwości języka Java. Zostały wprowadzone w Java SE 5 jako reakcja na mechanizmy wcześniej udostępnione w C#. Adnotacje są zarówno wbudowane w pakiecie przesłonięcie metody z klasy ostrzeżenie o użyciu przestarzałego elementu wygaszanie ostrzeżeń kompilatora jak i możliwe do definiowania przez programistę. Adnotacje są wykorzystywane do dokumentowania kodu źródłowego. Składniowo stoją na równi z modyfikatorami, np. public, static.
6 Adnotacje Zakład Inżynierii Oprogramowania Przykład definicji jako tzw. markera (pusta): Test{ Definicja adnotacji przypomina interfejs.
7 Adnotacje Zakład Inżynierii Oprogramowania Przykład definicji Usecase { public int id(); public String description() default brak opisu Powyższa adnotacja może być wykorzystana do oznaczania w kodzie metod stanowiących implementację przypadków decription= Realizacja zamówienia ) public void processorder(){
8 Adnotacje Zakład Inżynierii Oprogramowania Metaadnotacje Służą do definiowania adnotacji Do interpretowania kodu zawierającego adnotacje wykorzystuje się procesory adnotacji. Opierają się one o mechanizm refleksji, który omówimy poźniej. Są narzędzia wspomagające przetwarzanie adnotacji, takie jak np. apt. Będziemy intensywnie korzystali z adnotacji wbudowanych w plugin przy omawianiu testów jednostkowych i narzędzia JUnit4.
9 Adnotacje Zakład Inżynierii Oprogramowania Adnotacje można też wykorzystać do wygodniejszej obsługi zdarzeń, np. w GUI niż można to osiągnąć za pomocą samych klas wewnętrznych. Do tego zagadnienia wrócimy przy okazji omawiania biblioteki Swing.
10 Klasy i metody abstrakcyjne Metoda abstrakcyjna nie ma implementacji (ciała) i powinna być zadeklarowana ze specyfikatorem abstract. abstract int getsomething(); Klasa w której zadeklarowano jakąkolwiek metodę abstrakcyjną jest klasą abstrakcyjną i musi być opatrzona specyfikatorem abstract. Jeśli klasa jest abstrakcyjna, to nie musi mieć metod abstrakcyjnych. Klasa dziedzicząca klasę abstrakcyjną musi zdefiniować wszystkie abstrakcyjne metody tej klasy, albo sama będzie klasą abstrakcyjną i wtedy jej definicja musi być opatrzona specyfikatorem abstract.
11 Konstruktory Zakład Inżynierii Oprogramowania Konstruktory w Java: Domyślne mogą nie występować jawnie, są zawsze bezargumentowe Własne definiowane przez programistę Podobnie jak inne metody o tej samej nazwie muszą różnić się listą argumentów. W przypadku konstruowania obiektów, których klasy uwikłane są w hierarchie dziedziczenia, należy posłużyć się słowem kluczowym super. Dzięki niemu można przeprowadzić poprawną inicjalizację obiektów.
12 Konstruktory Zakład Inżynierii Oprogramowania Przykład listy inicjalizacyjnej ze słowem kluczowym super: public class Superclass { public String a; public int b; public Superclass(String a, int b) { this.a = a; this.b = b;
13 Konstruktory Zakład Inżynierii Oprogramowania public class Subclass extends Superclass { public float x; public Subclass(String a, int b, float x) { super(a, b); this.x = x;
14 Klasy zagnieżdżone Są one charakterystycznym elementem języka Java. Zapewne nie mają odpowiednika w żadnym innym języku programowania.
15 Klasy zagnieżdżone Czym są klasy wewnętrzne Klasa wewnętrzna to klasa zdefiniowana wewnątrz innej klasy. class A { class B { Klasa B jest klasą wewnętrzną w klasie A. Klasa A jest klasą otaczającą klasy B lub jej klasą zewnętrzną. Konstrukcja składniowa dla przekazywania this do konstruktora klasy wewnętrznej i późniejszego odwoływania się do niego.
16 Klasy zagnieżdżone Klasa zagnieżdżona - wewnętrzna - lokalna Terminologia: klasa zagnieżdżona każda klasa zdefiniowana wewnątrz innej klasy klasa wewnętrzna taka klasa zagnieżdżona, która nie jest statyczna klasa lokalna klasa zagnieżdżona zdefiniowana w bloku class OuterClass { static class StaticNestedClass { class InnerClass { void method(){ class LocalClass {;
17 Klasy zagnieżdżone Relacje między klasą otaczającą a klasą zagnieżdżoną istniejące w kodzie pośrednim.
18 Klasy zagnieżdżone Co może klasa wewnętrzna być zadeklarowana ze specyfikatorem private (normalne klasy nie!), uniemożliwiając wszelki dostęp spoza klasy otaczającej odwoływać się do niestatycznych składowych klasy otaczającej (jeśli nie jest zadeklarowana ze specyfikatorem static), być zadeklarowana ze specyfikatorem static (normalne klasy nie!), co powoduje, że z poziomu tej klasy nie można odwoływać się do składowych niestatycznych klasy otaczającej (takie klasy nazywają się zagnieżdżonymi, ich rola sprowadza się wyłacznie do porządkowania przestrzeni nazw i ew. lepszej strukturyzacji kodu)
19 Klasy zagnieżdżone Co może klasa wewnętrzna mieć nazwę (klasa nazwana), nie mieć nazwy (wewnętrzna klasa anonimowa), być lokalna zdefiniowana w bloku (metodzie lub innym bloku np. w bloku po instrukcji if), odwoływać się do zmiennych lokalnych (o ile jest lokalna, a zmienne są deklarowane ze specyfikatorem final).
20 Klasy zagnieżdżone Do czego są przydatne Klasy wewnętrzne mogą być ukryte przed innymi klasami pakietu (względy bezpieczeństwa). Klasy wewnętrzne pozwalają unikać kolizji nazw (np. nazwa klasy wewnętrznej nie koliduje nazwą z klasą zewnętrzną o tej samej nazwie). Klasy wewnętrzne pozwalają (czasami) na lepszą, bardziej klarowną strukturyzację kodu, bo można odwoływać się z nich do składowych (nawet prywatnych) klasy otaczającej, a przy tym zlokalizować pewne działania.
21 Klasy zagnieżdżone Do czego są przydatne Klasy wewnętrzne (w szczególności anonimowe) są intensywnie używane przy implementacji standardowych interfejsów Javy. Anonimowe klasy wewnętrzne pozwalają na traktowanie fragmentów kodu do wykonania (ściślej: metod przedefiniowywanych w tych klasach) jak obiektów, a wobec tego np. umieszczanie ich w tablicach, kolekcjach, czy przekazywanie innym metodom jako argumentów. Można to traktować jako bardzo częściową (ograniczoną co do semantyki i nieco żmudną w składni) realizację koncepcji domknięć (closures).
22 Klasy zagnieżdżone Klasa zaprzyjaźniona Java nie wspiera bezpośrednio możliwości tworzenia klas zaprzyjaźnionych (metod/atrybutów). Jednak można zasymulować ten mechanizm z wykorzystaniem klas wewnętrznych. public class A { private int privateint = 31415; public class SomePrivateMethods { public int getsomethingprivate() { return privateint; private SomePrivateMethods() { public void givekeyto(b other) { other.receivekey(new SomePrivateMethods());
23 Klasy zagnieżdżone public class B { private A.SomePrivateMethods key; public void receivekey(a.someprivatemethods key) { this.key = key; public void usageexample() { A ana = new A(); //int foo = ana.privateint; // doesn't work ana.givekeyto(this); int fii = key.getsomethingprivate(); System.out.println(fii);
24 Klasy zagnieżdżone Widoczność (visibility) klas wewnętrznych Sposób odwołania się do klasy wewnętrznej spoza klasy otaczającej jeśli klasa wewnętrzna jest: Prywatna brak możliwości Publiczna - NazwaKlasyOtaczającej.NazwaKlasyWewnętrznej Sposób odwołania się do klasy wewnętrznej z klasy otaczającej: Niezależnie od widoczności brak Sposób odwołania się z klasy otaczającej do klasy wewnętrznej: Statycznej: NazwaKlasyWewnętrznej.atrybut Niestatycznej:
25 Klasy zagnieżdżone Klasa anonimowa Jest to klasa wewnętrzna nie posiadająca nazwy. Najczęściej tworzymy klasy wewnętrzne po to, by przedefiniować jakieś metody klasy dziedziczonej przez klasę wewnętrzną bądź zdefiniować metody implementowanego przez nią interfejsu na użytek jednego obiektu. Referencję do tego obiektu chcemy traktować jako typu klasy dziedziczonej lub typu implementowanego interfejsu. Nazwa klasy wewnętrznej jest więc nam niepotrzebna i nie chcemy jej wymyślać. Wtedy stosujemy anonimowe klasy wewnętrzne.
26 Klasy zagnieżdżone Wykorzystuje się ją wtedy, gdy chcemy uniknąć tworzenia klas dla pojedynczych obiektów. Wszystko co o tej klasie wiemy to to, że implementuje ona pewien interfejs i właśnie za jego pośrednictwem możemy się do jej jedynego obiektu odwoływać. Typowy przykład zastosowania, to obsługa zdarzeń w GUI z wykorzystaniem prostych metod, jeśli nie muszą być współdzielone między komponentami. Jest zwykle wykorzystywana jako jedyna instancja implementacji interfejsu zarówno w pakietach bibliotek standardowych jak i we własnych implementacjach. UWAGA: odnośniki do domknięć (clojure),których ona jest namiastką.
27 Klasy zagnieżdżone Definicję anonimowej klasy wewnętrznej dostarczamy w wyrażeniu new. new NazwaTypu( parametry ) { // pola i metody klasy wewnętrznej gdzie: NazwaTypu nazwa nadklasy (klasy dziedziczonej w klasie wewnętrznej) lub implementowanego przez klasę wewnętrzną interfejsu, parametry argumenty przekazywane konstruktorowi nadklasy; w przypadku gdy Typ jest nazwą interfejsu lista parametrów jest oczywiście pusta (bo chodzi o implementację interfejsu).
28 Klasy zagnieżdżone Klasy wewnętrzne wspierają do pewnego stopnia brakujący w Java mechanizm wielokrotnego dziedziczenia. Jest on rozwiązany w pełni na poziomie interfejsów i częściowo na poziomie implementacji za pomocą klas wewnętrznych. Przykład symulacji wielokrotnego dziedziczenia za pomocą klas wewnętrznych pokazano na następnym slajdzie.
29 Klasy zagnieżdżone interface A { interface B { class X implements A, B { class Y implements A { B makeb() {return new B() {; static void takesb(b b){ main(){ Y y = new Y(); takesb(y.makeb()); // skrót
30 Klasy zagnieżdżone Kompilator Java generuje dla każdej klasy odpowiadający jej plik.class zawierający kod pośredni możliwy do wykonania na JVM. W przypadku klas wewnętrznych generuje on plik o nazwie: NazwaKlasyZewnętrznej$NazwaKlasyWewnętrznej.class a dla klas wewnętrznych anonimowych NazwaKlasyZewnętrznej$<i>.class gdzie i kolejny numer klasy anonimowej. Konstruowanie klas wewnętrznych jest dość skomplikowane, szczególnie w połączeniu z dziedziczeniem, ze względu na konieczność zapewnienia inicjalizacji niejawnej asocjacji z klasy wewnętrznej do klasy zewnętrznej.
31 Klasy zagnieżdżone Przykład konstrukcji klasy wewnętrznej: class Extern { class Inner { public class SuperInner extends Extern.Inner { SuperInner(Extern wi){ wi.super(); public static void main(string[] args) { Extern wi = new Extern(); SuperInner ii = new SuperInner(wi);
32 Klasy zagnieżdżone Przykład ilustrujący sposób korzystania z klas wewnętrznych oraz ich wybrane własności. UWAGA: przykład ten stanowi zarazem ilustrację zjawiska znanego z programowania obiektowego, które polega na propagacji statyczności.
33 Java SE 8
34 Java SE 8 Zakład Inżynierii Oprogramowania Omówione zostaną tutaj w zarysie te elementy języka, które mają zostać wprowadzone do Java SE w wersji 8.
35 Java SE 8 Zakład Inżynierii Oprogramowania W języku Java istnieją dwa szczególne rodzaje interfejsów: Marker interfejs, który nie ma pól ani metod Interfejs funkcyjny interfejs, który deklaruje dokładnie jedną metodę i żadnego pola. Przykłady: java.lang.runnable java.awt.event.actionlistener Implementacje interfejsów funkcyjnych wprowadzamy w kodzie za pomocą anonimowych klas wewnętrznych.
36 Java SE 8 wyrażenia Lambda Nazwy powiązane z pojęciem wyrażenia Lambda: Domknięcia (closures) Metody anonimowe (anonymous methods) W nawiązaniu do klas wewnętrznych, które mogą stanowić namiastkę domknięć omówione zostanie to pojęcie i sposób jego realizacji wprowadzony przez Java 8. Wyrażenie Lambda pozwala przenieść do metody fragment kodu zamiast obiektu. Dawniej można było używać jedynie idei callbacków wspieranej w Java za pomocą anonimowych klas wewnętrznych. Pozwala również na wykonanie tego samego kodu na grupie danych.
37 Java SE 8 wyrażenia Lambda Różnica między pojęciami Lambda i Domknięcie: Lambda jest funkcją anonimową funkcją zdefiniowaną bez nazwy. W niektórych językach jest równoważna funkcji nazwanej. W rzeczywistości definicja funkcji jest wewnętrznie przepisywana w czasie dopasowywania jej do zmiennej (binding). Domknięcie jest dowolną funkcją, która domyka (rozpościera się ponad) środowisko, w którym została zdefiniowana. Oznacza to, że może ona mieć dostęp do zmiennych, które nie są na jej liście parametrów.
38 Java SE 8 wyrażenia Lambda W jakiej sytuacji wybierać jaki rodzaj klas. Klasy lokalne warto używać gdy potrzebujemy wielu instancji jednej klasy, dostępu dok konstruktora, nazwanego typu Klasy anonimowe warto używać gdy chcemy zadeklarować pola lub dodatkowe metody Wyrażenia Lambda Warto używać w celu ukrycia fragmentu zachowania w celu przekazania go do innego fragmentu kodu. Np., jeśli chcemy wykonać tę samą akcję na każdym elemencie kolekcji, kiedy zakończy się przetwarzanie, kiedy wystąpi błąd Warto używać jeśli potrzebna jest prosta instancja interfejsu funkcyjnego i nie pasują pozostałe tu omawiane kryteria
39 Java SE 8 wyrażenia Lambda Klasy zagnieżdżone warto używać w podobnych okolicznościach jak klasy lokalnej, gdy potrzebujemy typu szerzej dostępnego i nie potrzebujemy dostępu do zmiennych lokalnych ani do parametrów metod Klasy wewnętrzne warto używać gdy potrzebujemy dostępu do niepublicznych pól i metod klasy otaczającej Statyczne klasy zagnieżdżone można używać gdy nie potrzebujemy dostępu do niepublicznych pól ani metod klasy otaczającej
40 Java SE 8 wyrażenia Lambda Ogólna postać wyrażenia lambda: (argument) -> (body) Przykłady: (int a, int b) -> { return a + b; () -> System.out.println("Hello World"); (String s) -> { System.out.println(s); () -> 42 () -> { return ;
41 Java SE 8 wyrażenia Lambda Do Java 8 dodano nową adnotację pozwalającą na definiowanie interfejsów public interface WorkerInterface { public void dosomework();
42 Java SE 8 wyrażenia Lambda Sposób wykorzystania tak zdefiniowanego interfejsu: public class WorkerInterfaceTest { public static void execute(workerinterface worker) { worker.dosomework(); public static void main(string [] args) { execute(new WorkerInterface() public void dosomework() { System.out.println("Worker invoked using Anonymous class"); ); Zakład Inżynierii Oprogramowania execute( () -> System.out.println( Invoked!") );
43 Java SE 8 wyrażenia Lambda Na następnym slajdzie pokazano przykład ilustrujący sposób wykorzystania wyrażeń lambda do uzyskania w GUI efektu, jaki do tej pory był możliwy z wykorzystaniem anonimowych klas wewnętrznych.
44 Java SE 8 wyrażenia Lambda public class ListenerTest { public static void main(string[] args) { JButton testbutton = new JButton("Test Button"); testbutton.addactionlistener(new ActionListener(){ public void actionperformed(actionevent ae){ System.out.println("Click Detected by Anon Class"); testbutton.addactionlistener(e -> System.out.println("Click Detected by Lambda Listner")); JFrame frame = new JFrame("Listener Test"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(testbutton, BorderLayout.CENTER); frame.pack(); frame.setvisible(true); Zakład Inżynierii Oprogramowania
45 Java SE 8 wyrażenia Lambda Jedna z głównych różnic w użyciu klas anonimowych i wyrażeń lambda leży w sposobie wykorzystania słowa kluczowego this. Klasa anonimowa odnosi się do klasy anonimowej Wyrażenie Lambda odnosi się do klasy, w której zostało zapisane Kolejna różnica tkwi w sposobie kompilacji. Klasa anonimowa kompilowana w sposób wyjaśniony wcześniej Wyrażenie Lambda kompilowane i konwertowane do prywatnej metody w klasie (z wykorzystaniem invokedynamic z Java 7)
46 Java SE 8 wyrażenia Lambda Przykład z klasą wewnętrzną przekazujemy kod do miejsca wywołania metody. btn.setonaction(new EventHandler<ActionEvent>() public void handle(actionevent event) { System.out.println("Hello World!"); ); btn.setonaction( event -> System.out.println("Hello World!") );
47 Java SE 8 wyrażenia Lambda Przykład z referencją do metody statycznej przekazujemy kod do miejsca wywołania metody. public class Utils { public static int comparebylength(string in, String out){ return in.length() - out.length(); public class MyClass { public void dosomething() { String[] args = new String[] {"microsoft","apple","lin ux","oracle" Arrays.sort(args, Utils::compareByLength);
48 Java SE 8 wyrażenia Lambda Przykład z referencją do metody nie-statycznej przekazujemy kod do miejsca wywołania metody. public class MyClass implements Comparable<MyObject> public int compareto(myobject obj) {return... public void dosomething() { MyObject myobject = new MyObject(); Arrays.sort(args, myobject::compareto);
49 Java SE 8 wyrażenia Lambda Przykład wykonywania tej samej metody na różnych danych. List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); // z operatorem -> list.foreach(n -> System.out.println(n)); // z operatorem :: nowym w Java 8 list.foreach(system.out::println);
50 Java SE 8 wyrażenia Lambda UWAGA: W kontekście tego co mówiliśmy o wzorcach projektowych i różnych możliwościach ich implementowania, w tym z wykorzystaniem: Interfejsów Klas abstrakcyjnych Klas zagnieżdżonych/wewnętrznych Programowania aspektowego warto rozważyć możliwość wykorzystania w implementacji wzorców: Wyrażeń lambda Zakład Inżynierii Oprogramowania
51 Java SE 8 Type Annotations Jest to kolejny element dodany do Java 8. Prowadzi on do znacznego wzbogacenia języka o adnotacje, których zarówno zasięg, znaczenie, jak i sposób definiowania uległy zmianom. Ograniczymy się tu tylko do przykładów użycia i do ilustracji nowego sposobu definiowania adnotacji. Możliwość określania listy typów ElementType.TYPE_PARAMETER) Test { Przykład użycia Map<@NonNull List<@Readonly Document>> documents;
52 Java SE 8 - nowości Nowe cechy Java 8: Lambda expressions Remove the Permanent Generation Small VM Parallel Array Sorting Bulk Data Operations for Collections Define a standard API for Base64 encoding and decoding New Date & Time API Provide stronger Password-Based-Encryption (PBE) algorithm implementations in the SunJCE provider
53 Koniec dr inż. Piotr Zabawa Instytut Informatyki Wydział Fizyki, Matematyki i Informatyki
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
Bardziej szczegółowoInterfejsy. 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,
Bardziej szczegółowoInterfejsy 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
Bardziej szczegółowoKurs 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
Bardziej szczegółowoWykł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,
Bardziej szczegółowoPolimorfizm, 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,
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoKurs 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
Bardziej szczegółowoKurs 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
Bardziej szczegółowoDziedziczenie. 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.
Bardziej szczegółowoKlasy 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
Bardziej szczegółowoInformatyka 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoAplikacje 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
Bardziej szczegółowoProgramowanie 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,
Bardziej szczegółowo1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Bardziej szczegółowoPakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
Bardziej szczegółowoJAVA 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
Bardziej szczegółowoProjektowanie obiektowe. Roman Simiński Polimorfizm
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Polimorfizm Koncepcja polimorfizmu Słowo polimorfizm pochodzi od dwóch greckich słów: poly czyli wiele, morphos czyli
Bardziej szczegółowoKlasy. 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
Bardziej szczegółowoPolimorfizm. 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
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoJava - 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
Bardziej szczegółowoJę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
Bardziej szczegółowoMateriały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoJę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
Bardziej szczegółowoKlasy 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
Bardziej szczegółowopublic - 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
Bardziej szczegółowoObszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoJava podstawy jęyka. Wykład 2. Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne.
Java podstawy jęyka Wykład 2 Klasy abstrakcyjne, Interfejsy, Klasy wewnętrzne, Anonimowe klasy wewnętrzne. Wyjątki: obsługa błędów Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego 12.03.2015
Bardziej szczegółowoJava: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoMarcin 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
Bardziej szczegółowoDefinicje 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
Bardziej szczegółowoProgramowanie w Javie wykład 8 Interfejsy
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,
Bardziej szczegółowoPARADYGMATY 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
Bardziej szczegółowoZwiązek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy
Janusz Jabłonowski Związek między pojęciami Zasada podstawialności Podklasy muszą realizować kontrakt zawarty przez nadklasy Przedefiniowywanie lub podmienianie (ang. overriding, czasami błędnie tłumaczone
Bardziej szczegółowoUML 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
Bardziej szczegółowoDefiniowanie 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:
Bardziej szczegółowoProgramowanie 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.
Bardziej szczegółowoJava 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
Bardziej szczegółowoKurs 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
Bardziej szczegółowoKonstruktory. 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
Bardziej szczegółowoJAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoKurs 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
Bardziej szczegółowoEnkapsulacja, 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
Bardziej szczegółowoKurs 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,
Bardziej szczegółowoJęzyk JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język
Bardziej szczegółowoRozdział 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
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
Bardziej szczegółowoInformatyka 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
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Bardziej szczegółowoJava: 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
Bardziej szczegółowoJę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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoWykł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
Bardziej szczegółowoPHP 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
Bardziej szczegółowoPodstawy Języka Java
Podstawy Języka Java Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Bardziej szczegółowoWykł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
Bardziej szczegółowoDziedziczenie. 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
Bardziej szczegółowoProjektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 3 Dziedziczenie
Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowo.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,
Bardziej szczegółowoDziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Bardziej szczegółowoProgramowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Bardziej szczegółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoJava: 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
Bardziej szczegółowoKOTLIN. Język programowania dla Androida
KOTLIN Język programowania dla Androida Historia Kotlin został opracowany przez firmę JetBrains Prace rozpoczęto w 2011 r., od 2012 r. dostępny na licencji Apache 2. Nazwa pochodzi od wyspy koło Petersburga
Bardziej szczegółowoProgramowanie 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....................................................................................
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Bardziej szczegółowoWykł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ą
Bardziej szczegółowoPodstawy programowania obiektowego w języku Java dla programujących w C++
Podstawy programowania obiektowego w języku Java dla programujących w C++ Wykład 8 Użyte przykłady częściowo zaczerpnięte z książki: T. Lis: "Java - Ćwiczenia praktyczne", Helion 2004 - wszystkie można
Bardziej szczegółowoPodstawy programowania III
Podstawy programowania III Jan Kazimirski 1 Opis zajęć Zastosowanie funkcji i obiektów w PHP powtórzenie zagadnień. Dostęp do bazy danych PostgreSQL z poziomu skryptu PHP. Wprowadzenie do języka SQL. Przykłady
Bardziej szczegółowo1. 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
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Bardziej szczegółowoC++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.
C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 5: Dziedziczenie i polimorfizm 3/24/2013 S.Deniziak: Programowanie obiektowe - Java 1 Kompozycja klas class Drzewo { class Krzew { class Las { Drzewo drzewostan[ ]; Krzew
Bardziej szczegółowoKlasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
Bardziej szczegółowoNa 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
Bardziej szczegółowoMultimedia 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
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe I. Obiekty i klasy Małgorzata Prolejko OBI JA16Z03 Plan Klasy i obiekty Odnośniki (referencje) Używanie klas predefiniowanych Tworzenie własnych klas Relacje pomiędzy klasami: dziedziczenie
Bardziej szczegółowoWykł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
Bardziej szczegółowoPlatformy 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
Bardziej szczegółowoAplikacje 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
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowoProgramowanie obiektowe. Wykład 03. Maciej Wołoszyn 17 marca Polimorfizm oraz wczesne i późne wiazanie
Programowanie obiektowe Wykład 03 Maciej Wołoszyn mailto:woloszyn@fatcat.ftj.agh.edu.pl 17 marca 2009 Spis treści 1 Polimorfizm oraz wczesne i późne wiazanie 1 1.1 Metody i klasy abstrakcyjne..........................
Bardziej szczegółowoProgramowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Bardziej szczegółowodziedziczenie - 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ć
Bardziej szczegółowoWprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).
Wprowadzenie w dziedziczenie Klasa D dziedziczy klasę B: B klasa bazowa D klasa pochodna Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Najpierw jest tworzona klasa bazowa,
Bardziej szczegółowoDziedziczenie. 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,
Bardziej szczegółowoJava - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński
Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan
Bardziej szczegółowoProgramowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka
Bardziej szczegółowo10. 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
Bardziej szczegółowoTechnologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Bardziej szczegółowo