Java – technologie zaawansowane

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Kurs języka C++ Paweł Rzechonek Instytut Informatyki
C++ Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego
Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory
Programowanie obiektowe
Standardowa biblioteka języka C++
Programowanie obiektowe
Klasy i obiekty.
Wzorce.
Zaawansowane metody programowania – Wykład V
Generics w .NET 2.0 Łukasz Rzeszot.
Systemy rozproszone W. Bartkiewicz
Programowanie obiektowe w Javie
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Bartosz Walter Inżynieria oprogramowania Lecture XXX JavaTM – część II Bartosz Walter
Zaawansowane technologie Javy Wykład 3 (21 lutego 2012) JDBC – programowanie bazodanowe (2)
C++ wykład 2 ( ) Klasy i obiekty.
Zaawansowane technologie Javy
Zaawansowane technologie Javy Wykład 1 (26 lutego 2013)
Zasady zaliczenia Warunki uzyskania zaliczenia:
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
Rekordy 1 Definicja Typ strukturalny nazywamy typem rekordowym, jeżeli zawiera pewną liczbę nazwanych składowych, które mogą być różnych typów. Dostęp.
Wstęp do programowania obiektowego

Projektowanie i programowanie obiektowe II - Wykład IV
Spring podstawy.
Wstęp do kontenerów IoC
Programowanie obiektowe III rok EiT
Podstawy programowania
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Podstawy programowania II
Źródła: podręcznikopracował: A. Jędryczkowski.
Podstawy Programowania
W większości języków programowania biblioteki wejścia/wyjścia ukrywają szczegóły obsługi poszczególnych mediów pod abstrakcją strumienia (ang. stream).
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Programowanie obiektowe III rok EiT
Mechanizm OLE ang. Object Linking and Embedding źródła:
Programowanie obiektowe – zastosowanie języka Java SE
Programowanie obiektowe III rok EiT
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
Kurs języka C++ – organizacja zajęć ( )
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Kurs języka C++ – wykład 4 ( )
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Procesy informacyjne w zarządzaniu
Elementy JavaServer Pages. Dyrektywy JSP  Elementy dyrektyw używane są do określania tej informacji o stronie, która pozostaje bez zmiany między żądaniami.
Paweł Starzyk Obiektowe metody projektowania systemów
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Wzorce Projektowe w JAVA
do programowania obiektowego w języku Groovy
K URS JĘZYKA C++ – ORGANIZACJA ZAJĘĆ ( ) Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Programowanie Obiektowe – Wykład 6
Kurs języka C++ – organizacja zajęć ( )
(według:
Zaawansowane technologie Javy Wykład 1 (23 lutego 2017)
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
PGO Interfejsy Michail Mokkas.
Założenia projektowe Javy
JavaBeans by Paweł Wąsala
PGO Dziedziczenie Michail Mokkas.
PGO Porównywanie obiektów
Zapis prezentacji:

Java – technologie zaawansowane Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego

Organizacja zajęć w semestrze letnim 2010/2011 Cel: poznanie i przećwiczenie wybranych technologii Javy. Wymagania: umiejętność programowania w języku Java (programowanie obiektowe, zaawansowane konstrukcje językowe, typy sparametryzowane).

Organizacja zajęć w semestrze letnim 2010/2011 Wykład: wykładowca: Paweł Rzechonek mail: prz@ii.uni.wroc.pl strona www z notatkami, materiałami, programami, listą zadań i ogłoszeniami bieżącymi: http://www.ii.uni.wroc.pl/~prz/2011lato/java.html

Organizacja zajęć w semestrze letnim 2010/2011 Laboratorium: po każdym wykładzie będzie do zaprogramowania zadanie związane tematycznie z treścią wykładu; zadania należy oddawać w wyznaczonym terminie; za każde zadanie można otrzymać do 10 punktów; programy należy prezentować osobiście na pracowni; na ocenę dostateczną trzeba do końca semestru zdobyć 50% z możliwych do uzyskania punktów;

Java – technologie zaawansowane Wykład 1 (28 lutego 2011) JavaBeans – programowanie komponentowe

Komponenty programowe JavaBean (ang. bean – ziarno) to ziarno, czyli programowy komponent Sposoby odczytywania i zmieniania stanu obiektu JavaBean: standardowe wzorce deklaracji metod, introspekcja realizowana za pomocą klasy Introspector. W pakiecie java.beans znajdują się klasy, interfejsy i wyjątki wspierające programowanie ziaren.

Właściwości Ziarna mają właściwości określające stan obiektu. Dostęp do właściwości zapewniają metody w klasie ziarna, zwane akcesorami: Akcesory odczytujące właściwości nazywane są getterami, Akcesory ustalające nowe wartości właściwości ziarna nazywane są setterami.

Właściwości Typy właściwości: właściwości proste (jedna wartość), właściwości indeksowane (wiele wartości umieszczonych w tablicy). Getter dla właściwości prostej nielogicznej o nazwie Prop i typie Type: Type getProp () {…} Getter dla właściwości prostej logicznej o nazwie Prop: boolean isProp () {…} Setter dla właściwości prostej o nazwie Prop i typie Type: void setProp (Type v) {…} Getter dla właściwości indeksowanej o nazwie Prop i typie Type: Type getProp (int i) {…} Type[] getProp () {…} Setter dla właściwości indeksowanej o nazwie Prop i typie Type: void setProp (int i, Type v) {…} void setProp (Type[] arr) {…}

Właściwości Właściwość ziarna może być nieograniczona (ang. bounded): o zmianie właściwości nieograniczonej mogą być powiadamiane inne ziarna i mogą one reagować na tę zmianę. Właściwość ziarna może być ograniczona (ang. constrained): o zmianie właściwości ograniczonej mogą być powiadamiane inne zainteresowane ziarna, są one pytane o zgodę na tę zmianę i jeśli któreś z zainteresowanych ziaren zawetuje ją (nie da zgody) to zmiana nie dochodzi do skutku.

Nasłuch zmian Setter zarówno nieograniczonej jak i ograniczonej właściwości musi wygenerować zdarzenie PropertyChangeEvent. Ziarna mające właściwości nieograniczone powinny dostarczyć metody: public void addPropertyChangeListener (PropertyChangeListener) {…} public void removePropertyChangeListener (PropertyChangeListener) {…} Ziarna mające właściwości ograniczone powinny dostarczyć metody: public void addVetoableChangeListener (VetoableChangeListener) {…} public void removeVetoableChangeListener (VetoableChangeListener) {…}

Własne ziarna Zdefiniowanie własnego ziarna wymaga zdefiniowania klasy, która: stosuje ogólnie przyjęte wzorce sygnatur metod oraz ewentualnie uzupełniona jest przez dodatkową klasę opisującą informacje o ziarnie (implementacja interfejsu BeanInfo); zapewnia serializację obiektów; posiada konstruktor bezparametrowy; uwzględnia pracę w środowisku wielowątkowym.

Nasłuch i wetowanie zmian Zmiana właściwości generuje zdarzenie PropertyChangeEvent. Komponenty zainteresowane śledzeniem zmian pewnej właściwości muszą implementować interfejs PropertyChangeListener. Komponenty, które mogą wetować zmiany pewnej właściwości muszą implementować interfejs VetoableChangeListener.

Nasłuch i wetowanie zmian Obiekt zdarzenia typu ProprtyChangeEvent możemy zadpytać o: nazwę właściwości String getPropertyName () starą (przed zmianą) wartość właściwości Object getOldValue () nową (aktualną) wartość właściwości Object getNewValue ()

Nasłuch i wetowanie zmian Interfejs PropertyChangeListener ma jedną metodę: public void propertyChange (PropertyChangeEvent ev); Interfejs VetoableChangeListener ma jedną metodę: public void vetoableChange (PropertyChangeEvent ev) throws PropertyVetoException; Wetowanie zmiany polega na zgłoszeniu wyjątku PropertyVetoException.

Nasłuch zmian Słuchacze zmian właściwości nieograniczonych muszą zostać przyłączeni do źródła zdarzenia, czyli do ziarna. Słuchacza przyłączamy do ziarna za pomocą metody addPropertyChangeListener(…). W ziarnie powinna też być zdefiniowana metoda odłączająca słuchacza od ziarna removaPropertyChangeListener(…). Każdy setter zmianiający właściwość nieograniczoną musi wygenerować zdarzenie PropertyChangeEvent i rozpropagować je wśród przyłączonych słuchaczy. Istnieje klasa narzędziowa PropertyChangeSupport, ułatwiająca przyłączanie i odłączanie słuchaczy oraz propagowanie zdarzeń wśród przyłączonych słuchaczy zmian określonej właściwości. Klasa ta posiada metody: przyłączania i odłączania słuchaczy zmian addPropertyChangeListener(…) i removePropertyChangeListener(…); generujące i propagujące zdarzenia zmiany firePropertyChange(…) i fireIndexedPropertyChange(…).

Wetowanie zmian Słuchacze zmian właściwości ograniczonych muszą zostać przyłączeni do źródła zdarzenia, czyli do ziarna. Słuchacza przyłączamy do ziarna za pomocą metody addVetoableChangeListener(…). W ziarnie powinna też być zdefiniowana metoda odłączająca słuchacza od ziarna removaVetoableChangeListener(…). Każdy setter zmianiający właściwość ograniczoną musi wygenerować zdarzenie PropertyChangeEvent i rozpropagować je wśród przyłączonych słuchaczy. Istnieje klasa narzędziowa VetoableChangeSupport, ułatwiająca przyłączanie i odłączanie słuchaczy oraz propagowanie zdarzeń wśród przyłączonych słuchaczy zmian określonej właściwości. Klasa ta posiada metody: przyłączania i odłączania słuchaczy zmian addPVetoableChangeListener(…) i removeVetoableChangeListener(…); generujące i propagujące zdarzenia zmiany fireVetoableChange(…).

Literatura (JavaBeans) K.Barteczko: Java – od podstaw do technologii. Tom 2. Wydawnictwo MIKOM, Warszawa 2004. JavaBeans(TM) Tutorial: http://download.oracle.com/ javase/tutorial/javabeans/