Programowanie komponentowe wykład 3
|
|
- Marta Kozłowska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie komponentowe wykład 3 Informatyka, IV sem. studia dzienne FTIiMS, PŁ
2 Programowanie komponentowe wymaga Znajmości składni języka każdy język programowania można poznać posługując się pewnym schematem Jakie są słowa kluczowe, jak buduje się wyrażenia, funkcje, zmienne, jak tworzy się typy danych, struktury danych, tablice, obiekty, itp. Znajomości bibliotek (obiektów, pakietów i komponentów) Czy trzeba samemu tworzyć funkcje i struktury danych, czy może wystarczy skorzystać z gotowych i zoptymalizowanych? Znajomości narzędzi programistycznych szybkość i wygoda tworzenia aplikacji Jak uruchomić kod w danym języku, jak poprawić błędy, jak wygenerować powtarzalne fragmenty kodu, praca krokowa, debugging
3 Kategorie składniowe Javy (1) 1. Słowa kluczowe nazwy typów, instrukcji sterujących, stałych, operatorów, modyfikatorów dostępu Nie można w ten sposób nazwać zmiennych, funkcji, itp. Słowa zarezerwowane obejmują terminy ''reserved for future use'' przewiduje się, że w przyszłych wersjach Javy wprowadzone będą nowe słowa kluczowe, a wówczas starsze kody mogłyby nie kompilować się w nowych środowiskach, np. w Java 7
4 Kategorie (2,3) 2. Separatory (9 szt.) ( ) { } ;, [ ] - oddzielają wyrażenia, bloki kodu, klasy - niektóre są także operatorami, np. [ ] operator indeksowania tablicy 3. Komentarze // jednolinijkowy od znaku // do końca linii /* Komentarz blokowy */
5 Kategorie (4) operatory 4. Operatory a. Priorytet, czyli ''kolejność wykonywania działań'', np. obiekt.tab[2*5] b. Wiązanie (prawe/lewe) wiązanie lewe np kompilator oblicza kolejno (((2+3)+4)+5) wiazanie prawe, np. x=y=z=2, kompilator oblicza (x=(y=(z=2))) Od prawej wiążą operatory jednoargumentowe i przypisania, pozostałe od lewej
6 Operatory c.d. c. Ilość argumentów (1, 2 lub 3)!zmiennaLogiczna (1 argument) 3*5, (2 argumenty) x<y? x : y (3 argumenty) d. Wartość (typ rezultatu) następny slajd e. L-wartość (ang. Left-value, L-value) - każde wyrażenie, które może znaleźć się po lewej stronie operatora przypisania, np. X = 2, tab[1] = tab[2] -ale nie: 5+=1 lub 5++, gdyż jest równoznaczne z 5=5+1!!!!
7 Kategorie (4) operatory cd. Podział przybliżony pod względem typu zwracanej wartości Arytmetyczne + - * % Wynik jest typu jednego z operandów Logiczne! && Wynik true lub false Przypisania = += -= *= Wynik jest typu lewego argumentu (czyli L- wartości)
8 Kategorie (4) operatory (podział przybliżony) Porównania == < >= true lub false Bitowe & ^ << >>> Wynik jest typu jednego z operandów Przydziału pamięci new Wynik jest typu referencyjnego Kontroli typu instanceof Wynik logiczny Zalecane ćwiczenia!
9 Kategorie (5) Identyfikatory nazwy stałe, czyli literały literały specjalne, np. polskie znaki znakowe (char, String) w, Dziendobry, \xy liczb całkowitych (int, byte) 100, 011, 0xFF00, 55L liczb rzecz. (double, float) 1.5,.6, 0.5f, 0.7D logiczne (boolean) true, false Są to także słowa zarezerwowane zmienne x, i, nazwisko, checkbox1 typy Button, String, int, char
10 Identyfikatory (nazwy) funkcji np. init(), wyciagnijpierw(25); Występują w trzech kontekstach Deklaracja, int funkcja(double x); Definicja = deklaracja + ciało int funkcja (double x) { // ciało funkcji return rezultat; } Wywołanie: użycie wartości funkcji X = funkcja (3.14);
11 Sterowanie wykonaniem programu for, while, do..while jak w C/C++ Oprócz np. while(1) Brak konwersji wyrażeń logicznych do int Powinno być while(1==1) if..else,if..else if..else jw. switch..case..default jw. break, continue jw. Przypisanie = (+=, -=,...) Dokładnie jak w C/C++
12 Sterowanie... cd. bloki instrukcji (obowiązuje przesłanianie nazw zmiennych) int x=2; { int y = 5; System.out.println(""+y); /// Bledem jest np. int x=3; Przeslania zmienna istniejącą } int y=3; // Nie jest to błąd kompilator,,zapomniał'' o y System.out.println(""+y); //EFEKT???
13 Typy danych w Jawie Typy danych Proste Złożone Tablicowe Obiektowe Biblioteczne Programisty
14 Typy proste (wbudowane, built-in, primitives) byte 1 bajt, stałoprzec. ze znakiem short 2, int 4, long 8 char 2 kod znaku UNICODE możliwe zapisanie EOF boolean 1 bajt, true/false float 4 bajty, zmiennoprzecinkowa double 8, jw.
15 Typy tablicowe TYLKO DYNAMICZNE!!! Jednowymiarowa int tab [ ] = new int [6]; Ale nie: int tab[6], bo nie ma tu rezerwacji pamięci operatorem new Dwuwymiarowa double tab [ ] [ ] = new double [10] [10]; Są to przykłady definicji tablic Trójwymiarowa boolean tab[ ][ ][ ]=...
16 Typy obiektowe Biblioteczne Button java.awt.button Date java.util.date ActionEvent java.awt.event.actionevent String java.lang.string Własne definicja klasy Np. Macierz class Macierz { definicja klasy, czyli pól i funkcji składowych }
17 Zmienne referencje (de facto: wskaźniki) Zmienna miejsce w pamięci do przechowywania danych to miejsce ma swoją nazwę, jak to w językach imperatywnych 3-ej generacji, nie zaś adres Zmienne (tylko pola klas lub zmienne lokalne/formalne funkcji, brak zmiennych globalnych) automatyczne (tylko typy proste, kompilator sam rezerwuje pamięć i sam ją zwalnia) int x; char znak; dynamiczne (rezerwacja pamięci operatorem new, wszystkie typy obiektowe i tablice) statyczne inicjalizacja wymagana przy deklaracji np. static int x = 5; //nie: static int x;... x=5;
18 Zmienne deklaracja, przydział pamięci, inicjalizacja Deklaracja int x, y=3; Button b1, b2; Rezerwacja pamięci (nie dotyczy typów prostych) b1 = new Button( Kliknij tu! ); Inicjalizacja x = 25; // typy proste napis = new String( próba Stringa... ); // typy złożone b2 = b1; // ŹLE - konstruktor kopiujący nie wywoła się, zostaną przypisane ADRESY, nie WARTOŚCI, musi być: b2 = new Button(b1);
19 Konwencje zapisu kodu w Jawie Klasy wielką literą, bez C lub T z przodu Macierz, Button, String Zmienne małą literą, bez podkreśleń i, nazwiskostudenta, iloscwierszymacierzy zmienna po. jest polem jakiejś innej klasy obiekt.pole zmienna po this jest polem bieżącej klasy this.pole // równoważne: pole, ale z this jest czytelniej zmienna bez poprzedzającego selektora jest argumentem formalnym funkcji lub zm. lokalną/pomocniczą pole
20 Standardy zapisu kodu... cd. Funkcje czasownik małą literą, dopełnienie wielką getnumber, tostring, add, róbcoś Nazwy pakietów małą literą java.awt; java.mypackage.myclass To klasa MyClass w pakiecie java.mypackage Bloki { // początek bloku // instrukcje } //koniec bloku
21 Notacja węgierska (Hungarian notation) Źródło: Bates: Poznaj Visual C++ 6.0, Appendix A b boolean bodpowiedz n short, int nwagazawodnika l long lrozmiarpliku fl float flmojapensja d double djegopensja bt Button przycisk ch Checkbox pole wyboru e Event zdarzenie pt Point punkt
22 Programowanie komponentowe wykład 4 Informatyka, IV sem. studia dzienne FTIiMS, PŁ
23 Różnice między C/C++ a Javą (1) Typy danych podstawowych niezależne od sprzętu specyficzne dla JVM, a nie dla platformy Nie istnieje pojęcie wskaźnika wszystkie zmienne typów prostych są wartościami int x=0; wszystkie zmienne typów złożonych (tablicowych i agregatów) są referencjami wymagają dynamicznego przydziału pamięci operator * oznacza tylko mnożenie operatory.*, ->, :: nie istnieją this jest referencją
24 Różnice... (2) Tablice tylko dynamiczne Kurs Tylocha, rozdz tablica w Jawie jest obiektem dziedziczy po Object, implementuje interfejs Cloneable deklaracja wymaga przydziału pamięci w zadanej ilości, poprzez podanie liczby elementów... String tab[ ] = new String[5];...lub zbioru inicjalizującego wartości elementów int tablicaint[ ] = {1, 2, 3, 4, 5}; String tab[ ]={new String( pn ),new String( wt )...}; Nazwa tablicy wraz z nawiasami [ ] jest L-wartością tab[0] = niedziela
25 Różnice... (3) Zwalnianie pamięci Kurs Tylocha, rozdz Nie ma operatora delete zwalnianiem pamięci zajmuje się funkcja System.gc() (od ang. garbage collector) funkcja ta wywoływana jest automatycznie co jakiś czas w osobnym wątku, tylko wtedy, gdy nie ma nic innego ważniejszego do zrobienia (wątek ten ma b. niski priorytet) sprawdzane są wszystkie wartości w referencjach; jeśli w żadnej nie ma adresu danego obszaru pamięci, to obszar ten jest zerowany (rysunek)
26 Różnice... (4) Zwalnianie cd. zwalnianie jawne można wywołać jawnie funkcję System.gc() jeśli obiekt musi przed zniknięciem zwolnić zasoby (np. pozamykać pliki), można nadpisać funkcję finalize(), odziedziczoną po java.lang.object przykład: kurs Tylocha, rozdz Wniosek: finalizer działa podobnie jak destruktor dotyczy to także wywołań finalizerów klas-przodków
27 Różnice... (5) Brak możliwości przeciążania operatorów operacje na niewbudowanych typach danych realizowane są przez funkcje składowe o zwyczajowych nazwach, np. == string1.equals(string2) rez. boolean <=, >... string3.compareto(string4) rez. int = konstruktory klas wszystkie przeciążone operacje przypisania zastąpione są przez konstruktory kopiujące String tekst1 = new String (innystring); String tekst2 = tekst1;//przepisanie ADRESU!! String tekst2 = new String (tekst1); //działa jeśli istnieje konstruktor kopiujący
28 Konstruktor kopiujący (5') K. kopiujący klasy A w C/C++ - konstruktor, który można wywołać z jedynym parametrem będącym referencją do obiektu klasy A Pozostałe parametry mogą być domyślne W Javie nie ma domyślnych parametrów funkcji K. kopiujący w Javie ma tylko jeden parametr Jeśli konstruktor w Javie odwołuje się do konstruktora klasy bazowej, to robi to poprzez słowo super, koniecznie w pierwszej linii pod nagłówkiem, patrz Różnica (9) Brak list inicjalizacyjnych
29 Komentarz Różnice 1 5 mają znaczny wpływ na budowę wyrażeń w Javie i, w ogólności, na konstrukcję kodu i działajacych programów. Ich przyswojenie jest istotne z punktu widzenia eliminacji nawyków z C/C++ (nawyków niewłaściwych w Jawie)
30 Różnice... (6) dostęp do klas, pól i metod Dostęp do klas, pól i metod Kurs Tylocha, rozdz w Jawie obowiązuje tzw. dostęp pakietowy Pakiet, podstawowa jednostka, jest katalogiem plików *.class w jednym pliku *.java znajduje się jedna klasa publiczna mogą być inne klasy, ale niepubliczne przykład po kompilacji w jednym pliku *.class znajduje się jedna klasa Przypisanie klasy do pakietu odbywa się instrukcją package nazwa_pakietu ; przykład położenie plików w pakietach określa zm. środ. CLASSPATH przykład dla CLASSPATH = C:\WINNT\java Pakiet może zawierać podpakiety np. java.awt zawiera w sobie java.awt.event zbiór klas odpowiedzialny za zdarzenia w oknach
31 Różnice... (modyfikatory 1) Modyfikatory dostępu do klasy public pola i składowe są widoczne w pakiecie i poza nim final po klasie nie można dziedziczyć abstract nie można utowrzyć obiektu tej klasy domyślnie: dostęp pakietowy pola i metody widoczne tylko dla klas wewnątrz pakietu Modyfikatory dostępu do pól i funkcji klasy private pole/metoda widoczne tylko w klasie protected pole metoda widoczne w klasie, pakiecie i w klasach dziedziczących public pole metoda widoczne ''wszędzie'' domyślnie ''package'', jw. w tym kontekście,,package'' nie jest słowem kluczowym
32 Różnice... (modyfikatory 2) Modyfikatory własności funkcji składowych final, static, abstract, synchronized, native dostęp do f-cji st. Nazwaklasy.funkcja() W C/C++ Nazwaklasy::funkcja() Modyfikatory własności pól klas final, static, transient, volatile inicjalizacja pola statycznego tylko w kodzie klasy (nie jak w C) rozdz. Kurs Tylocha inicjalizator pól statycznych
33 Różnice... (7) dziedziczenie Brak modyfikatorów dziedziczenia klas (public, private...) Dziedziczenie tylko po jednej klasie jednobazowe Hierarchia klas w pakietach ma postać drzewa każda klasa ma co najwyżej jednego bezpośredniego przodka Upraszcza to graf hierarchii dziedziczenia klas Czasem klasy muszą posiadać pewne funkcje, jeśli chcą aby dla ich obiektów działały metody standardowe Arrays.sort(Object[]) - wymaga aby obiekty miały funkcję compareto(), czyli implementowały interfejs Comparable INTERFEJS klasa abstrakcyjna o zadeklarowanych, ale nie zdefiniowanych funkcjach (jeśli posiada) o polach wyłącznie statycznych (jeśli posiada) zadeklarowana słowem interface
34 Różnice (7) przykład diagramu schematu dziedziczenia jednobazowego z interfejsami java.lang.object +--java.awt.component +--java.awt.container +--java.awt.panel +--java.applet.applet ActionListener ItemListener class MyApplet
35 Interfejs jako klasa, klasa interfejsowa Każda klasa implementująca interfejs MUSI zdefiniować jego metody Dzięki temu pewne cechy mają zawsze tę samą nazwę; ułatwia to np. ich wywoływanie przez inne komponenty np. Funkcja Arrays.sort(Object[ ] tab) działa w oparciu o funkcję compareto(...), a więc obiekty w tablicy tab muszą implementować interfejs Comparable Interfejs może dziedziczyć po innych interfejsach (także po kilku), ale nie może dziedziczyć po klasach Interfejs może być deklarowany w jednym pliku *.java z klasami publicznymi mimo tego, że sam jest publiczny Po kompilacji interfejs zostanie umieszczony w osobnym pliku *.class
36 Interfejs... cd. Kurs Tylocha, , [public] interface InterfejsPrzykl { static int Pole=3; abstract public void Metoda(); } //domyślnie interfejs jest publiczny // użycie interfejsu przez klasę public class MyApplet extends Applet implements InterfejsPrzykl { public void Metoda() { // co robi ta metoda dla tej klasy } }
37 Klasy wewnętrzne, anonimowe i lokalne Kurs Tylocha, Klasa wewnętrzna klasa zdefiniowana wewnątrz definicji innej klasy występowała w C/C++ Klasa lokalna klasa zdefiniowana wewnątrz bloku instrukcji (w definicji funkcji) niedopuszczalne w C/C++ Klasa anonimowa klasa zdefiniowana wewnątrz wyrażenia new NazwaKlasyPrzodka(//lista argumentów//) {...} jest to także sposób na dziedziczenie po interfejsach (!!!) niedopuszczalne w C/C++
38 Różnice... (9 słowo super) Słowo kluczowe super Kurs Tylocha rozdz Konstruktory nie posiadają list inicjalizacyjnych odpada operator : oraz inicjalizacja typu pole(wartość) super() wywołuje konstruktor klasy bazowej lub super.funkcja( ) - wywołuje funkcję o tej samej nazwie, ale w wersji z klasy bazowej Wywołanie super(...) musi być pierwszą linią kodu konstruktora przykład
39 Różnice... (9 słowo super, c.d.) Zakładamy hierarchię klas: A, B extends A, C extends B Słowa super nie można łączyć kasakadowo; aby odnieść się do nazwy niestatycznej w klasie wyższej należy konwertować referencję this np. w obiekcie klasy C ((A)this).get(); Konwersja this do klasy-przodka jest równoznaczna z super w obiekcie klasy C: ((B)this).get(); = super.get();
40 Programowanie komponentowe wykład 5 Informatyka, IV sem. studia dzienne FTIiMS, PŁ
41 Błędy w programach Z punktu widzenia kodu rozróżniamy Bł. kompilacji błąd składni w kodzie programu, Nieznana zmienna/funkcja/klasa/... Brak nawiasu/średnika/... Bł. logiczne program działa wbrew oczekiwaniom, ale DZIAŁA np. niepoprawne wyniki obliczeń Nieprzewidziane zachowanie interfejsu Brak możliwości wykonania jakiejś operacji Bł. czasu wykonania (ang. Runtime) program uruchamia się, ale potem zatrzymuje Dzielenie przez zero, indeks tablicy spoza zakresu Błąd otwarcia pliku (ogólnie: operacji we/wy) Odwołanie do niezainicjalizowanej zmiennej obiektowej String x; System.out.println(x);
42 Wyjątki i błędy w Javie Java oferuje bardzo rozbudowany, ściśle zorientowany obiektowo mechanizm obsługi sytuacji krytycznych (błędy we/wy, alokacji pamięci, braku zasobów, błędnych operacji itd.) Sytuacje wyjątkowe dzielimy na dwa rodzaje Errors błędy Exceptions wyjątki Błędy sytuacje rzadkie, związane z działaniem JVM, np. brak pakietu lub klasy, opór środowiska, poważny błąd systemowy Błędy nie powinny być obsługiwane w zwykłych programach Javy, ich wyrzucaniem zajmuje się watek JVM uruchamiający ''nasze'' programy np. java.lang.noclassdeffounderror brak klasy z funkcją main w bieżącym/wskazanym katalogu Zadanie na kolokwium: napisz kod wywołujący wyjątek X
43 Wyjątki i błędy hierarchia klas
44 Wyjątki... cd Kurs Tylocha, rozdz. 2.4 Wyjątki sytuacje zazwyczaj możliwe do obsłużenia instrukcją if..else, np. nie znaleziono pliku FileNotFoundException indeks poza granicami tablicy ArrayIndexOutOfBoundsExcetion referencja wskazująca na pusty obszar pamięci NullPointerException Błąd operacji arytmetycznej ArithmeticException
45 Wyjątki RuntimeExceptions Mogą występować bardzo często, nawet po kilka w jednym wyrażeniu for (i=0; i<10; i++); tab[ i ] = i; Ich obsługa nie jest przez kompilator wymagana zbyt duży koszt sprawdzenia w porównaniu do strat spowodowanych przez taki wyjątek NullPointerException ArrayIndexOutOfBoundsException ArithmeticException W momencie wystąpienia RuntimeException program zatrzyma się i pokaże nazwę wyjątku oraz miejsce jego wystąpienia przykład
46 Wyjątek jako obiekt Każda sytuacja wyjątkowa jest reprezentowana przez obiekt pewnej klasy Każdy pakiet dysponuje odpowiednim zestawem wyjątków obsługującym błędy wywołane przez jego klasy/funkcje przykłady z dokumentacji Można także we własnych pakietach definiować własne wyjątki, pod warunkiem, że dziedziczą one z klasy Throwable
47 Jak powstaje wyjątek? Słowa kluczowe throw,throws Wyjątek trzeba najpierw zgłosić public void funkcja() throws MyException { //... if (WystapilBlad) throw new MyException(); //... new MyException zwraca referencję do obiektu zawierającego dane o sytuacji wyjątkowej, np. kod błędu, treść komunikatu, itp.
48 Obsługa wyjątków Metoda try-catch-finally try { // instrukcja generująca wyjątek } catch (NazwaKlasyWyjątku wyj) { // co zrobić z tym wyjątkiem}... finally {//blok wykona się niezależnie od wystąpienia wyjątku}
49 Kolejność obsługi wyjątków (1) Jeśli wyjątki są w różnych blokach kodu o kolejności decyduje przebieg sterowania, np. try { // instrukcje generujące wyjątki } catch (IOException io) {System.err.println("blad IO");} try { // instrukcje generujące wyjątki } catch (SecurityException se) {System.err.println("blad sec");
50 Kolejność obsługi wyjątków (2) Jeśli wyjątki występują w tym samym bloku o kolejności decyduje hierarchia dziedziczenia: od najbardziej szczegółowego do najbardziej ogólnego, czyli ''od dołu do góry, poźniej try { //... instrukcje generujące wyjatki } catch (java.io.objectstreamexception) { } catch (java.io.ioexception) { } catch (java.lang.exception){ }...
51 Porównanie if-else i try-catch int otwórzplik(ścieżka) { if ( plik.otwórz() == false) {błąd otwarcia pliku} else if ( przydzielpamięć(plik.długość) ==false) {brak pamięci} else if (zapiszdopliku(tekst) == false) {błąd wyjścia} else if (zamknijplik() == false) { obsłuż ten błąd} else return OK ; }
52 Porównanie if-else i try-catch readfile { try { otwórz plik; przydziel dla niego pamięć; wczytaj tekst do pliku ; zamknij plik; } catch (fileopenfailed) { zrób coś z tym; } catch (memoryallocationfailed) { zrób coś z tym; } catch (writefailed) { zrób coś z tym; } catch (fileclosefailed) { zrób coś z tym; }}
53 Definiowanie własnego wyjątku class MyException extends Exception { String msg; MyException() { msg = new String ( komunikat wyjatku );} } Większość możliwych wyjątków jest już zdefiniowana w pakietach Własne wyjątki służą do zgłoszenia np. sytuacji wyjątkowej we własnej klasie wyjątku odziedziczonego po istniejącym
54 Programowanie komponentowe wykład 6 Informatyka, IV sem. studia dzienne FTIiMS, PŁ
55 Standardowe struktury danych Pakiety Javy zawierają b. dużą ilość gotowych do użycia w kodzie klas struktur danych Np. pakiet java.util klasy reprezentujące dynamiczne struktury danych klasy obsługujące kalendarz, datę, walutę, słownik klasy obsługujące struktury kontenerowe, itp. Apel: zanim zaczniesz tworzyć nową klasę PRZEJRZYJ DOKUMENTACJĘ PAKIETÓW!!! 9 przypadków na 10 jest już oprogramowanych
56 Klasy String i StringBuffer java.lang.string reprezentuje łańcuchy tekstowe w miejsce tablicy char[ ] (lub C/C++: char*) 11 konstruktorów, w tym kopiujące compareto(), comparetoignorecase(), concat(), equals(object), replace(), replaceall, trim(), valueof() String jest klasą final ponadto zapisanego w niej tekstu nie można zmienić! Do modyfikacji tekstu służy klasa java.lang.stringbuffer należy stworzyć jej obiekt zainicjowany Stringiem przetworzyć tekst metodami klasy StringBuffer rezultat zapisać od nowa w obiekcie String
57 Klasa Vector Klasa reprezentująca tablicę obiektów pochodzących od java.lang.object java.lang.object // sam Vector też pochodzi od Object java.util.abstractcollection +--java.util.abstractlist +--java.util.vector Funkcje obsługujące dane: add(object), add(collection), add(int index, Object) set(), setelementat(object, int), setsize(int) clear(), remove(object), removeall(), trimtosize(int) clone(), tostring(), toarray(), equals(object)
58 Klasa java.util.stack Klasyczny stos pozwala tylko na kładzenie elementów na górze i ich zdejmowanie z góry Rozszerzone implementacje stosu umożliwiają również podglądanie elementów lub ich sprawdzanie Klasa Stack jest rozszerzoną implementacją stosu Dziedziczy od Vector Funkcje: boolean empty(); pop(object), push(object), boolean search(object), peek()
59 Klasa Arrays Jeśli nie chce się przekształcać własnych tablic w obiekty z biblioteki Java......można użyć funkcji z klasy Arrays; reprezentuje ona (w postaci funkcji statycznych) najczęstsze operacje na gotowych tablicach sortowanie 20 funkcji sort() porównywanie elementów 9 funkcji equals() wyszukiwanie 9 funkcji binarysearch() wypełnianie funkcje fill() Funkcje te przyjmują daną tablicę jako argument (inaczej niż zazwyczaj jest w Javie) dokumentacja
60 Obiekt Date Do działania na datach klasa Date Java 1.1, później klasa Calendar Obiekt klasy Date reprezentuje dowolny moment czasowy z dokładnością do milisekund Na 64 bitach (long) zapamiętuje liczbę milisekud, które upłynęły od 1 stycznia 1970 roku, od godz. 0h 00m 00s 000ms (tzw. moment epoch) Daty wcześniejsze zapamiętuje się jako liczby ujemne
61 Format danych w Date rok liczba c. = y 1900 miesiąc liczba z {0,.., 11}, gdzie 0 = styczeń dzień mies. liczba z {1,.., 31} dzień tyg. liczba z {0,..., 6}, gdzie 0 = niedziela godzina liczba całk. z przedziału <0, 23> minuta liczba całk. z przedziału <0, 59> sekunda liczba całk. z przedziału <0, 61>!!! (sek. przestępne) funkcje getyear(), getmonth(), getdate(), getday(), gethour()...
62 Konstruktory i funkcje Date Date now = new Date(); alokuje obiekt dokładnie ten moment Date(y, m, d), Date(y, m, d, h, m), Date(y, m, d, h, m, s) Date(long milisecs), Date(String) Brak konstruktora kopiującego Date(Date) dlaczego? now.equals(whenelse), // tendencja do nazw naturalnych now.before(littlebitlater) now.after(littlebitearlier) setdate(), setmonths(), setyear()...
63 Inne struktury danych Calendar, Currency Dictionary, GregorianCalendar......
64 Programowanie komponentowe wykład 7 Informatyka, IV sem. studia dzienne FTIiMS, PŁ
65 Operacje wejścia/wyjścia Operacje we/wy w Javie są reprezentowane przez wyspecjalizowane typy danych w pakiecie java.io Klasa File reprezentacja pliku dyskowego Klasy OutputStream, Writer dokumentacja strumienie wyjściowe abstract Klasy InputStream, Reader strumienie wejściowe abstract Wyjątki i interfejsy
66 Klasa java.io.file Pola (tylko statyczne) zawierają separatory ścieżek zapisane jako String lub char (są zależne od środowiska) pathseparator, pathseparatorchar Konstruktory tworzą obiekt plik na podstawie Obiektu typu File przykład ścieżki do pliku i/lub katalogu Konstruktory nie generują wyjątków......bo nie działają na dysku, tylko na strukturze w pamięci RAM Do stworzenia pliku na dysku: createnewfile() throws IOException, SecurityException
67 Klasa java.io.file(2) Funkcje składowe tworzenie i usuwanie plików i katalogów createtempfile, exists, delete, mkdir, mkdirs sprawdzanie istnienia i właściwości plików canread, canwrite, ishidden, isfile, isdirectory, length ustawienia własności plików setreadonly, setlastmodified, renameto porównywanie z innymi obiektami tego typu compareto(file), compareto(object), equals Wyjątki generowane przez metody klasy File SecurityException, IOException, NullPointerException, IllegalArgumentException
68 Strumień: medium transmisji danych (Podział strumieni ze względu na miejsce w hierarchii dziedziczą po java.lang.object) do programu, wejściowe InputStream z programu, wyjściowe OutputStream tekst do programu Reader tekst z programu Writer Są to klasy abstrakcyjne przeznaczone do dziedziczenia przez strumienie wyspecjalizowane
69 Strumienie wejściowe Strumienie dziedziczące po InputStream mogą pobierać dane z: Tablica obiektów Obiekt String Plik Pipe potok Sekwencja innych strumieni połączonych w jeden Inne źródła (np. połączenie internetowe)
70 Strumienie wejściowe InputStream
71 Strumienie wyjściowe Program w RAM może formatować dane wyjściowe w postaci Tablicy bajtów (oprócz String) Pliku Potoku (pipe)
72 Strumienie wyjściowe OutputStream
73 Strumienie podział (typ) Podział strumieni ze względu na przesyłane dane Bajtowe służą do zapisu/odczytu ciągów bajtów niefiltrowane ciągi bajtów nie mają interpretacji np. pliki *.class, pliki z obrazkami filtrowane bajty są interpretowane jako dane pewnych typów prostych, np. long, int, short w tym strumienie buforowane Obiektowe zapis/odczyt obiektów typów złożonych Znakowe szczególny przypadek strumieni obiektowych/filtrowanych, ale reprezentowane przez klasy Reader i Writer służą do pracy z tekstem reprezentowanym jako String lub char[ ]
74 Strumienie bajtowe niefiltrowane ByteArrayInputStream,ByteArrayOutputStreamFileInp utstream, FileOutputStream Podstawowe metody: close zamyka strumień finalize do zamykania w przypadku destrukcji obiektu write/read(byte[ ] b) write/read(byte[ ] b, int off, int len) write/read(int b)
75 Strumienie bajtowe filtrowane Są to strumienie FilterInputStream i FilterOutputStream i/lub ich pochodne DataInputStream oraz DataOutputStream filtrowane strumienie bajtowe (strumienie danych) odczytywanie typów int, float itp. mają jedno pole (in, out) zapisana nazwa aktualnego strumienia tworzy się je na podstawie strumienia typu Input lub Output podanego jako argument w jedynym konstruktorze readdouble, readint, readchar, readfloat writedouble, writeint, writechar, writefloat także metody read/write ze strumieni niefiltrowanych
76 Strumienie bajtowe buforowane Są szczególnym przypadkiem strumieni Filter BufferedInputStream, BufferedOutputStream Pola protected byte[ ] buf bufor protected int count liczba bajtów w buforze BufferedInputStream(InputStream) tworzy buforowany strumień wejściowy dla strumienia InputStream (analogicznie: Output) BufferedInputStream(InputStream, int) jw. z buforem o rozmiarze int (analogicznie: Output) Metody tylko read/write Brak możliwości zapisu zinterpretowanych bajtów do bufora!
77 Strumienie obiektowe ObjectOutputStream serializacja obiektów Javy jako serii typów prostych ObjectInputStream odczytywanie ciągów danych typów prostych jako obiektów defaultwriteobject, defaultreadobject, writeobject, readobject, replaceobject, readtyp Każdy typ wbudowany ma swój odpowiednik w postaci klasy o podobnej nazwie (int - Int) w pakiecie java.lang
78 Strumienie znakowe FileReader (FileWriter) strumień do odczytywania (zapisywania) znaków zapisanych w pliku konstruktory jako argument przyjmują parametr klasy File Strumień ten dziedziczy po InputStreamReader (InputStreamWriter), w którym dostępna jest jeszcze funkcja read (write) do pracy na pojedynczych bajtach lub ich tablicach. konstruktor InputStreamReader (OutputStreamReader) przyjmuje jako parametr obiekt typu InputStream (OutputStream) PrintWriter strumień do współpracy z konsolą i/lb drukarką szereg funkcji wyspecjalizowanych w wydruku
79 Strumienie znakowe wejściowe Reader
80 Strumienie znakowe wyjściowe Writer
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
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ół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ół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ół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ółowoInformatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Bardziej szczegółowoSTRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW
STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW 1. Procedura korzystania ze strumieni danych Aby utworzyć plik: 1) Należy utworzyć obiekt (np. typu FileOutputStream), powiązany ze plikiem danych binarnych (np.
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ół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 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ół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ół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ół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ół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ółowoKurs programowania. Wykład 10. Wojciech Macyna. 05 maja 2016
Wykład 10 05 maja 2016 Biblioteka wejścia/wyjścia (Input/Output) import java.io.*; Umożliwia przechowywania danych na nośniku zewnętrznym Dane moga być wysyłane do plików, na drukarkę, do bufora pamięci,
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 techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
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ół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ółowoJęzyki i paradygmaty programowania (JIPP)
Języki i paradygmaty programowania (JIPP) dr hab. inż. Adam Niewiadomski, prof. nadzw. Informatyka, III sem. studia dzienne inżynierskie PWSZ we Włocławku Program przedmiotu 1 część semestru (ok. 4-5 wykładó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ółowoStrumienie i serializacja
Strumienie i serializacja Prezentacja dostępna na Syriuszu: http://sirius.cs.put.poznan.pl/~inf80156 Klasy: InputStream, OutputStream, Reader i Writer W Javie hierarchia strumieni oparta jest o cztery
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ół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ół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ół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ółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
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ół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ół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ół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ół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ółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
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ółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
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ół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ółowoStrona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Bardziej szczegółowoJAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt
JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoWykład 2: Podstawy Języka
Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście
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ół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ół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ółowoWykład 3 Składnia języka C# (cz. 2)
Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest
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ółowoJęzyk programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
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ółowoPodstawowe części projektu w Javie
Podstawowe części projektu w Javie Pakiet w Javie to grupa podobnych typów klas, interfejsów i podpakietów. Pakiet w Javie może być wbudowany lub zdefiniowany przez użytkownika. Istnieje wiele wbudowanych
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ółowoWykład 4: Wejście/wyjście: strumienie Java
PK1 2006_2018 Walery Susłow Programowanie komputerów Wykład 4: Wejście/wyjście: strumienie Java dr inż. Walery Susłow walery.suslow@tu.koszalin.pl Wejście/wyjście Podstawowy mechanizm wejścia-wyjścia znajduje
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ółowoJeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Bardziej szczegółowoMetody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany
Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany plik. boolean exists() sprawdza czy plik o zadanej nazwie
Bardziej szczegółowoJęzyk JAVA podstawy. Wykład 6, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 6, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do operacji wejścia/wyjścia: strumienie 2. Podstawowe klasy strumieni i InputStream/OutputStream
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ółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoWykład 4. Tablice. Pliki
Informatyka I Wykład 4. Tablice. Pliki Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada
Bardziej szczegółowoZaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoPodstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
Bardziej szczegółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoC++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Bardziej szczegółowoPROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
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ół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ół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ółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
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ółowoSTRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE
STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE 1) Strumienie tekstowe wejściowe wprowadzanie danych Procedura korzystania ze strumieni tekstowych wejściowych
Bardziej szczegółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
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ół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ółowo2. Składnia, środowisko i konwencje w Javie
Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,
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ół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ół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ół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ółowoIMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Bardziej szczegółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
Bardziej szczegółowoApplety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej
Applety Java Są to komponenty stron WWW o ukrytym kodzie Applety są pisane w zwykłej Javie i dlatego kompilowane do pliku(ów) *.class, a nie interpretowane jak skrypty w JavaScript Aby przeglądarka odtwarzała
Bardziej szczegółowoPodstawy otwartych języków programowania Wyjątki i strumienie I/O
Podstawy otwartych języków programowania Wyjątki i strumienie I/O Wiktor Wandachowicz Wyjątki Podstawą filozofii Javy jest założenie, że: źle sformułowany kod nie zostanie wykonany Wyjątki są mechanizmem
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ółowoRok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne
Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: JFM-1-508-s Punkty ECTS: 3 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Fizyka Medyczna Specjalność: Poziom studiów: Studia I
Bardziej szczegółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
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ół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ół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ół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ół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ółowo