Wykład 04. Programowanie obiektowe. Maciej Wołoszyn 17 marca Spis treści
|
|
- Dagmara Górska
- 5 lat temu
- Przeglądów:
Transkrypt
1 Programowanie obiektowe Wykład 04 Maciej Wołoszyn 17 marca 2009 Spis treści 1 Wyjatki i obsługa błędów Rzucanie wyjątków Argumenty konstruktorów Przechwytywanie wyjątków Tworzenie własnych wyjątków Specyfikacja rzucanych wyjątków Przechwytywanie dowolnego wyjątku Ponowne rzucanie wyjątków Wyjątki typu RuntimeException Blok finally Wyjątki i dziedziczenie Dopasowywanie wyjątków Wyjątki sprawdzane Podsumowanie Wykrywanie typów Obiekt Class Refleksje (Odzwierciedlenia) Podsumowanie Proszę o przesyłanie na ten adres informacji o znalezionych błędach, literówkach oraz propozycji zmian i uzupełnień. Dokument przygotowano za pomocą systemu LATEX. Wszelkie prawa zastrzeżone. 1
2 Programowanie obiektowe. Wykład Wyjatki i obsługa błędów Java zaleca (a w przypadku wykorzystania klas bibliotecznych praktycznie wymusza) obsługę błędów za pomocą mechanizmu wyjatków (exceptions) czyli rezygnację z funkcji zwracających kody błędów i ich każdorazowego sprawdzania dotyczy to oczywiście tylko błędów, które mogą się pojawić dopiero na etapie uruchomienia programu, a nie jego kompilacji zalety mechanizmu obsługi wyjątków: możliwość przekazania informacji o błędzie w inne miejsce programu nie zawsze od razu mamy dość informacji, aby coś zaradzić (w przeciwnym wypadku nie potrzebujemy wcale rzucać wyjątku) uporządkowanie obsługi błędów często wystarczy obsługiwać dany błąd w jednym miejscu, dzięki czemu oddzielamy rozwiązanie zasadniczego zagadnienia od obsługi możliwych problemów 1.1 Rzucanie wyjatków instrukcja throw nowy wyjątek (obiekt odpowiedniej klasy! np. bibliotecznej) jest tworzony w zwykły sposób operatorem new wykonanie programu w aktualnym miejscu (metodzie, bloku instrukcji) zostaje przerwane dalszym przebiegiem steruje już procedura obsługi danego wyjątku, tzw. exception handler (o ile jest przygotowana) class Mat { static final double EPSILON = 1e-12; static double div(double x, double y) { return x/y; static double divexc(double x, double y) { if( Math.abs(y) < EPSILON) throw new ArithmeticException(); return x/y; System.out.println("1)"+Mat.div(0,0)); System.out.println("2)"+Mat.divExc(0,0));
3 Programowanie obiektowe. Wykład )NaN Exception in thread main java.lang.arithmeticexception at Mat.divExc(P01.java:8) at P01.main(P01.java:38) System.out.println("3)"+5/0); Exception in thread main java.lang.arithmeticexception: at P01.main(P01.java:38) nie zawsze rzucanie wyjatku ma sens, np.: / by zero static void pokazrozw(int Wx,int Wy,int W){ if(w!=0){ System.out.print("Wyniki: "); System.out.println(Wx/W+" "+Wy/W); else{ // rozwiazanie na miejscu zamiast wyjatku: System.out.println("W=0!"); 1.2 Argumenty konstruktorów standardowe, biblioteczne klasy wyjątków posiadają dwa rodzaje konstruktorów: domyślne, np. ArithmeticException() przyjmujące opis w postaci String-a, np. ArithmeticException(String s) static double divexc(double x, double y) { if( Math.abs(y) < EPSILON) throw new ArithmeticException("div/0"); return x/y; System.out.println("2)"+Mat.divExc(0,0)); Exception in thread main java.lang.arithmeticexception: div/0 at Mat.divExc(P01.java:8) at P01.main(P01.java:38)
4 Programowanie obiektowe. Wykład 04 4 jako wyjątki mogą być użyte dowolne obiekty klas dziedziczących po klasie Throwable najczęściej do obsługi każdego typu błędu stosuje się osobną klasę informacja o błędzie jest przechowywana wewnątrz obiektu; czasem jedyną potrzebną informacją jest typ wyjątku i żadne dodatkowe dane nie są w takiej klasie przechowywane 1.3 Przechwytywanie wyjatków rzucając wyjątek zakładamy, że zostanie on gdzieś odebrany i obsłużony aby nie spowodować natychmiastowego opuszczenia bieżącej metody, użycie kodu, który może wyprodukować wyjątek musi być zrealizowane w bloku instrukcje po try następują bloki catch (handlers) po jednym dla każdego typu wyjątku, który chcemy przechwycić kod mogacy generować wyjatki catch( A e ) { obsługa wyjatku typu A catch( B e ) { obsługa wyjatku typu B catch( C e ) { obsługa wyjatku typu C... każdy blok catch zachowuje się podobnie do funkcji, która pobiera dokładnie jeden argument (identyfikator musi być podany nawet jeśli nie jest wykorzystywany i do obsługi wyjątku wystarcza nam znajomość jego typu) bloki catch muszą się znaleźć bezpośrednio za try po wystąpieniu wyjątku uruchamiany jest pierwszy handler z pasującym typem jeśli w bloku try jest kilka metod mogących powodować ten sam wyjątek, to do jego obsługi potrzeba tylko jednego catch int m = 1/0; System.out.println("dalej?"); catch(arithmeticexception e){
5 Programowanie obiektowe. Wykład 04 5 System.out.println("tak nie mozna..."); System.out.println("teraz dalej!"); tak nie mozna... teraz dalej! 1.4 Tworzenie własnych wyjatków często biblioteczne klasy wyjątków nie opisują dobrze rodzaju błędu, który może mieć miejsce w naszym programie można utworzyć własną klasę reprezentującą wyjątek dziedzicząc po istniejącej już klasie, jeśli to możliwe o podobnym znaczeniu class AaaException extends Exception { class DivByZeroException extends ArithmeticException { class ZeroByZeroException extends ArithmeticException { class Mat { static final double EPSILON = 1e-12; static double divexc(double x, double y) { if( Math.abs(y) < EPSILON) if(math.abs(x) < EPSILON) throw new ZeroByZeroException(); else throw new DivByZeroException(); return x/y; for(int k=0;k<2;k++) double w = Mat.divExc(k,0); catch(divbyzeroexception e) { System.err.println("! x/0!");
6 Programowanie obiektowe. Wykład 04 6 catch(zerobyzeroexception e) { System.err.println("! 0/0!");! 0/0!! x/0! można oczywiście dodać do klasy dodatkowe informacje, np. o wartościach, które spowodowały wygenerowanie wyjątku class Mat { static final double EPSILON = 1e-12; static double divexc(double x, double y) { if( Math.abs(y) < EPSILON) throw new DivByZeroException(y); return x/y; class DivByZeroException extends ArithmeticException { private double x; public DivByZeroException(double x) { this.x = x; public double x() { return x; double w = Mat.divExc(2,1e-13); catch(divbyzeroexception e) { System.err.print("! x/0!"); System.err.println(" : M="+e.x()); e.printstacktrace();! x/0! : M=1.0E-13 DivByZeroException at Mat.divExc(P03.java:5) at P03.main(P03.java:27)
7 Programowanie obiektowe. Wykład Specyfikacja rzucanych wyjatków nazwy wszystkich wyjątków, które nie pochodza od klasy RuntimeException muszą być wyszczególnione w deklaracji metody, która może je spowodować służy do tego słowo kluczowe throws void f() throws AaaException { /*... */ metoda nie musi rzucać wyjątku, który deklaruje (przydatne np. dla metod abstrakcyjnych) przykłady wyjątków niesprawdzanych na etapie kompilacji (dziedziczacych po klasie RuntimeException): ArithmeticException IndexOutOfBoundsException NegativeArraySizeException NullPointerException (pełna lista dostępna w dokumentacji) 1.6 Przechwytywanie dowolnego wyjatku ponieważ używane w programach klasy wyjątków dziedziczą po klasie Exception, więc w prosty sposób można spowodować przechwycenie dowolnego z nich: catch(exception e) { System.err.println("JAKIS wyjatek"); jeśli potrzeba przechwytywać dowolny wyjątek, to handler catch(exception e) umieszcza się jako ostatni z bloków catch inaczej zablokujemy możliwość obsługi bardziej szczegółowych typów wyjątków użycie typu Exception powoduje, że nie mamy informacji o konkretnym rodzaju wyjątku; możemy jedynie posłużyć się odziedziczonymi metodami throw new ArithmeticException("BLAD"); catch(exception e) { System.err.println(e.getMessage()); System.err.println(e);
8 Programowanie obiektowe. Wykład 04 8 Object Throwable Exception Error RuntimeException... DataFormatException ArithmeticException... NullPointerException Rysunek 1: Relacje dziedziczenia pomiędzy niektórymi klasami obsługującymi mechanizm wyjątków. BLAD java.lang.arithmeticexception: BLAD 1.7 Ponowne rzucanie wyjatków może się zdarzyć, że wskazane będzie rzucenie na wyższy poziom przechwyconego już wyjątku (np. przekazanie do dalszej obsługi dowolnego obiektu złapanego przez catch(exception e)) wystarczy w tym celu użyć instrukcji throw podając referencję do przechwyconego wyjątku catch(exception e) { System.err.println("przekazuje dalej.."); throw e; dalsze bloki catch w aktualnym miejscu nie są już sprawdzane wyrzucana jest kompletna informacja o wyjątku nawet jeśli przechwycony został jako Exception, to nie traci się informacji o dokładnym typie 1.8 Wyjatki typu RuntimeException dostępna jest pewna ilość automatycznie rzucanych wyjątków, potomków klasy RuntimeException
9 Programowanie obiektowe. Wykład 04 9 nie wymagają podania na liście rzucanych przez metodę wyjątków są to tzw. wyjatki niesprawdzane najczęściej się ich nie przechwytuje (sygnalizują błędy w programie, które powinny być usunięte na etapie debuggowania i testowania) przykład: ArrayIndexOutOfBoundsException tak samo jak inne typy wyjątków mogą być rzucane z dowolnego miejsca zbędne są instrukcje w rodzaju: if(x == null) throw new NullPointerException(); ponieważ użycie nie pokazującej na nic referencji x i tak spowoduje wyjątek NullPointerException 1.9 Blok finally pozwala wykonać jakieś instrukcje niezależnie od tego, czy wewnątrz bloku try wyjątek został rzucony, czy też nie gwarantuje wykonanie kodu, do którego mogłoby nie być powrotu jeśli nastąpiłby wyjątek (nawet jeśli brak odpowiedniego dla danego wyjątku bloku catch, to blok finally zostanie wykonany przed przekazaniem wyjątku dalej!) można np. zamknąć otwarte pliki albo połączenia sieciowe pełna postać obsługi wyjątków: instrukcje pod specjalnym nadzorem (mogace rzucać wyjatki typu E1, E2,...) catch(e1 e) { obsługa wyjatku E1 catch(e2 e) { obsługa wyjatku E2 finally { instrukcje wykonywane zawsze throw new ArithmeticException("BLAD"); catch(nullpointerexception e) { System.err.println("NullPointer"); finally { System.err.println("finally...");
10 Programowanie obiektowe. Wykład System.err.println("za pozno..."); finally... Exception in thread "main" java.lang.arithmeticexception: BLAD at P05.main(P05.java:9) należy uważać, aby przypadkiem rzucając wyjątek wewnątrz bloku finally nie spowodować utraty informacji o pierwszym zaistniałym wyjątku, jeśli nie był on dotąd obsłużony wyjątek rzucony wewnątrz finally pojawi się zanim dojdzie do przekazania dalej pierwotnego wyjątku 1.10 Wyjatki i dziedziczenie przy redefiniowaniu odziedziczonej po klasie podstawowej metody można rzucać tylko te wyjątki, na które pozwala deklaracja throws umieszczona w klasie podstawowej zapewnia to prawidłowe działanie m.in. polimorfizmu zastrzeżenie to nie dotyczy wyjątków potomnych od zadeklarowanych w klasie podstawowej ewentualnie można w redefiniowanej wersji metody zrezygnować z rzucania wyjątków class XException extends Exception { class YException extends Exception { class A { void f() throws Exception { void g() throws XException { class B extends A { void f() throws YException { //void g() throws YException { /* ZLE */ ograniczenie wyłącznie do wyjątków zadeklarowanych w klasie bazowej nie dotyczy również konstruktorów konstruktor klasy potomnej musi deklarować wyjątki rzucane przez konstruktor klasy bazowej konstruktor klasy potomnej nie może przechwytywać wyjątków rzucanych przez konstruktor klasy bazowej
11 Programowanie obiektowe. Wykład Dopasowywanie wyjatków po rzuceniu wyjątku system ich obsługi sprawdza dostępne handler-y w kolejności w jakiej są zapisane; po znalezieniu pasującego do typu wyjątku uznaje się wyjątek za obsłużony i nie jest prowadzone dalsze poszukiwanie handler-ów nie jest wymagane dokładne dopasowanie: obiekt klasy potomnej zostanie obsłużony przez blok catch napisany dla klasy bazowej class AException extends Exception { class BException extends AException { throw new BException(); catch (AException e) { System.out.println("AException"); AException nie można próbować obsługiwać wyjątku klasy potomnej po wcześniejszym obsłużeniu typu podstawowego throw new BException(); catch (AException e) { System.out.println("AException"); // catch (BException e) { // System.out.println("BException"); // /* spowodowaloby blad kompilacji */ 1.12 Wyjatki sprawdzane muszą być obsługiwane albo zadeklarowane jako rzucane (przekazywane dalej) przez metodę jeśli nie chcemy lub nie możemy obsłużyć na miejscu ani zadeklarować jako rzucane przez metodę, to można je opakować wewnątrz wyjątku niesprawdzanego (np. typu RuntimeException)
12 Programowanie obiektowe. Wykład static void f() throws Exception { throw new Exception(); static void g() { f(); catch (Exception e) { throw new RuntimeException(e); public static void main(string[] args) { g(); Exception in thread "main" java.lang.runtimeexception: java.lang.exception at P10.g(P10.java:16) at P10.main(P10.java:9) Caused by: java.lang.exception at P10.f(P10.java:5) at P10.g(P10.java:14) // static void h() { // f(); // /* ZLE - blad kompilacji: P10.java:21: unreported exception java.lang.exception; must be caught or declared to be thrown */ 1.13 Podsumowanie Nie należy przechwytywać wyjątków, z którymi nie wiadomo co zrobić! spójna organizacja obsługi błędów jest szczególnie ważna przy pisaniu komponentów (bibliotek), które mają być używane przez inne programy Wyjątków używa się aby np.:
13 Programowanie obiektowe. Wykład naprawiać przyczynę kłopotów, a potem ponownie wywoływać metodę skąd rzucony został wyjątek 2. zaproponować rozwiązanie zastępcze zamiast wywoływać ponownie kłopotliwą metodę 3. zrobić co się da w aktualnym miejscu i przekazać wyjątek (ten sam lub inny) dalej 4. bezpiecznie zakończyć działanie programu 2 Wykrywanie typów wykrywanie dokładnego typu obiektu, jeśli dysponujemy tylko referencją typu bazowego RTTI = Run-Time Type Identification odpowiada za sprawdzanie typu przed rzutowaniem i ew. ClassCastException rzucenie wyjątku class Dane { String opis(){ return "Dane"; void f(object obj) { System.out.println( // obj.opis() /* ZLE (blad komp.) */ // (String)obj /* ZLE (wyjatek) */ ((Dane)obj).opis() ); Dane d = new Dane(); f(d); Dane za pomocą zwracającego wartość logiczną operatora instanceof można sprawdzić, czy obiekt należy do danej klasy void f(object obj) { String s; if(obj instanceof Dane) { s=((dane)obj).opis();
14 Programowanie obiektowe. Wykład else s="cos innego"; System.out.println(s); Dane d = new Dane(); String s = "Napis"; f(d); f(s); Dane Cos innego Uwaga: nie ma to służyć zastępowaniu polimorfizmu, ale ułatwieniu np. wywołania metody specyficznej dla konkretnego typu (a nie dla bazowego)! 2.1 Obiekt Class zawiera informacje o klasie/interfejsie wykorzystywany do tworzenia obiektów danej klasy w wyniku kompilacji umieszczany jest w pliku NazwaKlasy.class i ładowany przez JVM przy pierwszym użyciu danego typu (a nie zaraz przy uruchamianiu programu!) można się do niego odnieść np. poprzez: metodę getclass() zdefiniowaną w klasie Object i zwracającą referencję do odpodwiedniego obiektu Class tzw. literał klasy: NazwaKlasy.class dostępny również dla interfejsów, tablic i typów prostych, np. Dane.class; int.class; dodatkowo dla klas obudowujących typy proste dostępne są pola TYPE takie, że np. int.class Integer.TYPE dostępne są m.in. metody: String getname() nazwa klasy, interfejsu, typu prostego... boolean isinterface() sprawdza, czy klasa jest interfejsem boolean isarray() sprawdza, czy klasa jest tablicą
15 Programowanie obiektowe. Wykład boolean isinstance(object obj) dynamiczny odpowiednik operatora instanceof (wynik=true jeśli obj nie jest null i może być zrzutowane do typu reprezentowanego przez Class) void wypisznazweklasy(object obj) { System.out.println(obj + " jest klasy " + obj.getclass().getname()); Dane d = new Dane(); String s = "Napis"; wypisznazweklasy(d); wypisznazweklasy(s); Dane@11b86e7 jest klasy Dane Napis jest klasy java.lang.string 2.2 Refleksje (Odzwierciedlenia) nie zawsze podczas kompilacji dostępne są informacje o klasach (np. gdy używamy komponentów, klas ładowanych przez sieć itp.) mechanizm refleksji pozwala na uzyskanie informacji o typie obiektu oraz jego polach i metodach analizuje obiekty dopiero podczas wykonywania programu, podczas gdy zwykłe RTTI robi to na etapie kompilacji klasa Class zawiera m.in. metody: Method[] getmethods() zwracająca tablicę publicznych metod Constructor[] getconstructors() zwracająca tablicę publicznych konstruktorów Field[] getfields() zwracająca tablicę publicznych pól potrzebne klasy (Method, Field, Constructor) są dostępne w bibliotece java.lang.reflect import java.lang.reflect.*; class Dane { public String opis() { return "Dane";
16 Programowanie obiektowe. Wykład Method[] m = Dane.class.getMethods(); for(int i = 0; i < m.length; i++) System.out.println(m[i]); public java.lang.string Dane.opis() public native int java.lang.object.hashcode() public final native java.lang.class java.lang.object.getclass() public final native void java.lang.object.wait(long) throws java.lang.interruptedex public final void java.lang.object.wait(long,int) throws java.lang.interruptedexcep public final void java.lang.object.wait() throws java.lang.interruptedexception public boolean java.lang.object.equals(java.lang.object) public final native void java.lang.object.notify() public final native void java.lang.object.notifyall() public java.lang.string java.lang.object.tostring() 2.3 Podsumowanie tam gdzie się tylko da, należy wykorzystywać polimorfizm mechanizm RTTI powinien być używany tylko gdy nie da się użyć polimorfizmu
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....................................................................................
Bardziej szczegółowoObsługa błędów za pomocą wyjątków. Paweł Motofa (140746)
Obsługa błędów za pomocą wyjątków Paweł Motofa (140746) Co zrobić, gdy wystąpi błąd Przykład Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Co zrobić, gdy wystąpi błąd Jak wyglądałaby funkcja
Bardziej szczegółowoWykład 8: Obsługa Wyjątków
Wykład 8: Obsługa Wyjątków Wyjątki Wyjątek to sytuacja nienormalna, która pojawia się w trakcie wykonania programu. W językach bez obsługi wyjątków, błędy są wykrywane i obsługiwane ręcznie, zwykle przez
Bardziej szczegółowoJęzyki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
Bardziej szczegółowoWYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.
WYJĄTKI Klasa Throwable Exception Error Klasy dziedziczące po klasie Exception są typami wyjątków, które automatycznie obsługuje Java lub program przy jawnym przechwytywaniu i obsłudze wyjątków w blokach
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 9: Wyjątki 5/5/2013 S.Deniziak:Programowanie obiektowe - Java 1 Co to jest wyjątek? błąd wykonania: InputFile.java:8: Warning: Exception java.io.filenotfoundexception must
Bardziej szczegółowoThrowable. Wyjatek_1(int x_) { x = x_; } int podaj_x()
Wykład 3. Wyjątki 1) Obsługa wyjątków system czasu przebiegu Javy przerwanie programu class Wyjatek_1 //plik Proba_1.java int x; Wyjatek_1(int x_) x = x_; int iloraz() int p = 45/x; //generowanie wyjątku
Bardziej szczegółowoWyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196
Wyjątki 180 / 196 Wyjątki W Javie istnieje mechanizm tzw. wyjątków (ang. exception), który pozwala na przechwytywanie błędów pojawiających się w programie. Kompilacja tab [ 1 0 ] = 100; spowoduje powstanie
Bardziej szczegółowoWyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.
Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,
Bardziej szczegółowoProgramowanie Obiektowe Ćwiczenie 4
Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)
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ółowoProgramowanie 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
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ółowoProgramowanie 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
Bardziej szczegółowoWykład 2 Wybrane konstrukcje obiektowych języków programowania (1)
MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System
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ółowoJava SE Laboratorium nr 4. Temat: Obsługa wyjątków i zdarzeń
Java SE Laboratorium nr 4 Temat: Obsługa wyjątków i zdarzeń 1 1. Definicja i idea I. Obsługa wyjątków Praktycznie w każdym większym programie powstają jakieś błędy. Powodów jest bardzo wiele, może być
Bardziej szczegółowoDawid Gierszewski Adam Hanasko
Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Wyjątki mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Spis treści Wyjątki... 3 2 Wyjątki Podczas pracy programu
Bardziej szczegółowoZad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?
Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public
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ół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ół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ółowoDokumentacja 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ółowoProgramowanie 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
Bardziej szczegółowoPlatformy 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
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ół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ółowoWyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
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ółowoKlasy 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
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 7: Typy uogólnione. Stringi. 4/21/2013 S.Deniziak: Programowanie obiektowe - Java 1 Jak operować na danych różnych typów? Wymagana zgodność typów Rzutowanie w górę Tylko
Bardziej szczegółowoPrzypomnienie o klasach i obiektach
Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ
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ół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ół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ół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ół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ół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ółowoObsługa wyjątków. Język C++ WW12
Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try
Bardziej szczegółowoProgramowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody
Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusza Mikody W bloku inicjalizacji nie można wywołać konstruktora klasy nadrzędnej (poprzez super). class Klasa{
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ół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ółowoObiektowe 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,
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31
Programowanie w C++ Wykład 8 Katarzyna Grzelak 7 maja 2018 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoProgramowane refleksyjne i serializacja
1 Programowane refleksyjne i serializacja 1. Programowanie refleksyjne: przegląd wybranych klas z pakietu java.lang i java.lang.reflect, dynamiczne obiekty proxy. 2. Serializacja interfejs Serializable,
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ółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
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ółowoObsługa wyjątków. Rysunek 2-4 Hierarchia dziedziczenia klas wyjątków
Obsługa wyjątków Podczas działania programu mogą wystąpić róŝne sytuacje specjalne, do których naleŝą m.in. wystąpienia błędu polegającego na próbie otwarcia pliku, który nie istnieje. Java posiada zapoŝyczony
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ół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ółowoProgramowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 6 Katarzyna Grzelak kwiecień 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoJava. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
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ółowoJę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,
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ół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ół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ół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ółowoRemote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
Bardziej szczegółowoWspółbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowo1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4
Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.
Bardziej szczegółowoJęzyk C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Bardziej szczegółowo1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);
1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania
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ółowoWspółbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1
Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie
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ół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ółowoLaboratorium 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
Bardziej szczegółowoRemote Method Invocation 17 listopada 2010
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 3: Tworzenie i usuwanie obiektów 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 1 Deklaracje pól klasy class Klasa1 { int i; Klasa2 k = new Klasa2(); char c= x ; byte
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof
Bardziej szczegółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
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ół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ółowoJę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
Bardziej szczegółowoKompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main
Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoWyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska
Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania
Bardziej szczegółowoSzablony. Szablony funkcji
Szablony Szablony sa mechanizmem ponownego wykorzystania kodu (reuse) W przypadku funkcji ponownie wykorzystany jest algorytm W przypadku klas ponownie wykorzystane sa wszystkie skladowe Deklaracja szablonu
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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ół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ół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ółowoJava. 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
Bardziej szczegółowoOprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Bardziej szczegółowoWprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.
-1-1. Wyjątki 2. Przykładowe zadania Wyjątki Wyjątek w Java jest obiektem, który opisuje sytuację błędną powstałą w kodzie. Zaistnienie sytuacji błędnej w metodzie powoduje utworzenie obiektu reprezentującego
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoAplikacje 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
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ół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ół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ółowoĆwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
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ółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowo