GUI - projektowanie interfejsów cz. II

Podobne dokumenty
Języki programowania imperatywnego

Języki programowania deklaratywnego

Programowanie aplikacji mobilnych

Kolekcje mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Programowanie w języku Java. Kolekcje

Kolekcje. Na podstawie:

Java Collections Framework

Kolekcja (kontener) to po prostu obiekt, który grupuje wiele elementów w jeden twór.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Podstawy Programowania Obiektowego

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Język Java część 2 (przykładowa aplikacja)

Programowanie obiektowe - 1.

Modelowanie i Programowanie Obiektowe

Realizacja ekstensji klasy. Paulina Strzelecka, Tomasz Roszkowski

java.util.* :Kolekcje Tomasz Borzyszkowski

Programowanie obiektowe

Programowanie w języku C++ Podstawowe paradygmaty programowania

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Technologie i usługi internetowe cz. 2

Język Java część 2 (przykładowa aplikacja)

Lista, Stos, Kolejka, Tablica Asocjacyjna

Programowanie Obiektowe (Java)

Wydział Fizyki i Informatyki Stosowanej, Uniwersytetu Łódzkiego Łódź. Java podstawy języka, wykład 4 1

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Wykład 0 Informacje Podstawowe

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe

Języki programowania imperatywnego

Programowanie obiektowe

Java Język programowania

Historia modeli programowania

Kolekcje - pakiet Java Collections Framework

Java Podstawy. Michał Bereta

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

K_W04 K_W04 K_W04. Opis

Klasy abstrakcyjne i interfejsy

Interfejsy i klasy wewnętrzne

Paradygmaty programowania

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018


Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Programowanie obiektowe. Wprowadzenie

Java niezbędnik programisty spotkanie nr 8. Kolekcje c.d.

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Programowanie obiektowe

PHP 5 język obiektowy

Języki i paradygmaty programowania. I. Wprowadzenie

Języki i techniki programowania Ćwiczenia 2

Programowanie obiektowe

Kolekcje - pakiet Java Collections Framework

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Podstawy otwartych języków programowania Przechowywanie danych

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Podstawy programowania. Wprowadzenie

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Enkapsulacja, dziedziczenie, polimorfizm

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Metodyka i Technika Programowania 1

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Informatyka, I stopień. Programowanie (PRO300.2)

Aplikacje w środowisku Java

Programowanie obiektowe i język Java

Dokumentacja do API Javy.

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Programowanie obiektowe 1 - opis przedmiotu

Paweł Kurzawa, Delfina Kongo

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Wykład 1: Wprowadzenie

Programowanie Obiektowe i C++

Podstawy Programowania 2

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Dawid Gierszewski Adam Hanasko

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

Kompletna dokumentacja kontenera C++ vector w -

Języki programowania deklaratywnego

Wykład 8: klasy cz. 4

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Paradygmaty programowania

Języki programowania II - opis przedmiotu

Podstawy Języka Java

1. Język JAVA. 1. Pierwszy program. 2. Kalkulator. 3. Klasy. 4. Dziedziczenie

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Transkrypt:

Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 2

Java Foundations Classes przyciski; pola tekstowe; panele; okna dialogowe; biblioteka Swing.

Metodyka (paradygmat) programowania - czyli? Metodyka (zwana też często paradygmatem) to ustandaryzowane dla wybranego obszaru podejście do rozwiązywania problemów. sposób programowania oparty na mechanizmach udostępnianych przez wybrany język programowania; w związku z odmiennym przeznaczeniem języków programowania mogą występować istotne różnice pomiędzy poszczególnymi paradygmatami; środowisko przeważnie nie narzuca paradygmatu; dobór odpowiedniej metodyki zależy od rozwiązywanego problemu;

Nadtypy paradygmatów Programowanie stacjonarne - tworzenie programu, uwzględniającego obliczenia wykonywane przez jeden procesor; Programowanie rozproszone - tworzenie programu, uwzględniającego obliczenia wykonywane bez współdzielenia zasobów obliczeniowych (współdzielenie danych - często rozproszonych); Programowanie równoległe - tworzenie kodu z uwzględnieniem obliczeń wykonywanych przez więcej niż jeden procesor. Konieczność synchronizacji i komunikacji;

Typy paradygmatów Programowanie imperatywne - słynna instrukcja goto ; Przykłady języków: Algol, Fortran, Pascal, C. Programowanie funkcyjne - Haskell (Wartościowanie leniwe); Programowanie opisowe - VHDL (język opisu i projektowania układów cyfrowych); Programowanie logiczne - Prolog (fakty i reguły);

Podstawowe rodzaje metodyk Programowanie liniowe - całość programu jest postrzegana jako jeden, ciągły blok; Programowanie proceduralne - dekompozycja problemu. Blok główny to szkielet programu, a poszczególne procedury i funkcje są wywoływane w określonej kolejności; Programowanie funkcyjne - wynik w programowaniu funkcyjnym otrzymywany poprzez złożenie funkcji. Przykładowo pętla zastępowana jest poprzez rekurencję. Programowanie obiektowe - klasa, obiekt, metoda, pole, enkapsulacja. Programowanie generyczne - programowanie uogólnione. Programowanie agentowe - dekompozycja kodu i wydzielenie zadań dla osobnych podprogramów/wątków/procesów.

Krótko o Javie typy proste; typy referencyje; deklaracja zmiennych; instrukcje sterujące; rzutowanie; metody i zwracane typy; zasięg zmiennych; obiekty i dziedziczenie; interfejsy.

Java vs C# Java to aplikacje przenośne; C# wydajniejsze; C# bardziej rozbudowane środowisko i sporo narzędzi ułatwiających pracę; W C# typy proste to też obiekty, natomiast w Javie trzeba je najpierw opakować (np. klasa Double, lub Integer); W Javie nie można w prosty sposób definiować typów prostych (w C# mamy struct); trzeba uważać na obsługę tablic w Java odwołujemy się do pierwszego wymiaru, a potem do drugiego.

Programowanie obiektowe klasa a obiekt; konstruktor (domyślny, parametrowy, kopiujący); pola prywatne a pola publiczne; metody klasy; klasy statyczne i pola statyczne.

Co dobrze będzie znać? podstawy klas i obiektów; dziedziczenie (większość komponentów dziedziczy po innych elementach); podstawy liczb losowych (pseudolosowych); tablice statyczne (oraz dynamiczne);

Kolekcje lista (java.util.list) - każdy element ma przyporządkowany numer kolejny(indeks). Możliwość dodawania nowych elementów oraz pobierania wartości elementu na danej pozycji; kolejka(java.util.queue) - lista umożliwiająca obsługę mechanizmu FIFO oraz LIFO; mapa (java.util.map) - przechowuje mapowania klucz-wartość, przy czym klucz jest unikalny.

Rysunek: Hierarchia Collections. Źródło: wazniak.mimuw.edu.pl

Nieco dokładniej - listy ArrayList - stosowana kiedy kluczowy jest czas dostępu do danych, ale liczba dodawanych elementów jest niewielka; LinkedList - wersja z powiązanymi elementami - stosowana, kiedy liczba operacji takich jak usuwanie, czy dodawanie będzie duża; ArrayList oraz LinkedList są implementacjami interfejsu List; kiedy używamy Array a kiedy Linked? - jeżeli nie jesteśmy pewni, to raczej mamy użyć ArrayList; w przypadku listy typu Linked pobranie elementu ma złożoność równą O(1).

Nieco dokładniej - kolejka kolejka LIFO - Last In First Out; kolejka FIFO - First In First Out; kolejka priorytetowa - kolejka z ustaloną strukturą relacji pomiędzy elementami; kolejki udostępniają mechanizm dodawania oraz pobierania elementu z głowy (języki funkcyjne np. Haskell i podział listy na głowę oraz ogon);

Nieco dokładniej - mapa mapa formalnie jest kolekcją; przechowują pary elementów klucz-wartość; wartości moga się powtarzać, natomiast obiekty-klucze muszą być unikalne w obrębie całej mapy; TreeMap - przechowuje elementy, które są posortowane według klucza; HashMap - funkcja HashCode, czyli zwrócenie liczby całkowitej dla obiektu swojego typu.

Wybrane operacje na kolekcjach boolean Add(Object o); boolean Remove(Object o); boolean Contains(Object o); boolean removeall(collection coll); int Size().

Rysunek: Klasa Object i zastosowanie

Klasa Interfejs wszystkie metody są zaimplementowane. wszystkie metody są abstrakcyjne. Klasa abstrakcyjna niektóre metody są zaimplementowane; niektóre metody są abstrakcyjne.

Interfejsy tworzony przy pomocy słowa kluczowego interface; dokładny opis czynności(metod), które dana klasa powinna robić; brak opisu, w jaki sposób ma zostać zrealizowane dane zadanie; np. metoda Sortuj(int[] tablica) - wymusza na nas zaimplementowanie metody sortowania dla tablicy typów int. Nie ma jednak informacji na temat tego, czy ma to być quicksort, czy też sortowanie bąbelkowe; klasa implementująca dany interfejs może posiadać dodatkowe metody charakterystyczne tylko dla niej; adnotacja @Override - a więc wskazanie w klasie implementującej metodę danego interfejsu, iż nadpisujemy tę metodę; interfejs może być używany jako ogólniejszy typ - nadklasa dla innych klas, np. interfejs Pojazd, a dalej: Rower jest implementacją interfejsu Pojazd.

Klasy abstrakcyjne mogą zawierać metody abstrakcyjne; mogą zawierać zwykłe metody posiadające określone funkcjonalności; mogą zawierać stałe; metod abstrakcyjnych nie można oznaczyć jako statycznych; nie można stworzyć konkretnej instancji klasy abstrakcyjnej;

Rysunek: Okno projektowania

Rysunek: Dostępne elementy Swing

Kontenery najwyższego poziomu JFrame reprezentuje okno główne aplikacji; JFrame zawiera obszar, w którym przedstawione zostaną wszystkie pozostałe komponenty; w szczególności konieczne jest ustalenie wielkości okna (możliwości zmniejszania / zwiększania obszaru roboczego, czy tez tytułu okna); Obiekt klasy JFrame może zostać utworzony z głównej klasy projektu zawierającej tylko metodę main (punkt wejścia do aplikacji), lub utworzony wewnątrz głównego pliku w projekcie.

Kontenery najwyższego poziomu II kontener najwyższego poziomu traktowany jest w aplikacji jako singleton powinniśmy mieć tylko jedną instancję tego obiektu; kontener JFrame może być (poprzez dziedziczenie) rozszerzony o dodatkowe elementy; kontener JFrame może zawierać mniejsze kontenery - JPanel, które pozwalają grupować elementy; położenie komponentów w JFrame może być ustalone bezwzględnie, lub względem innych elementów (analogicznie jak w przypadku interfejsów mobilnych); w przypadku (niezalecanego) układu z położeniem bezwzględnym sugerowane jest przyjęcie stałego i niezmiennego rozmiaru całej aplikacji; zarządzanie położeniem elementów wewnątrz kontenera odbywa się przy pomocy layout managera (np. flow manager, grid manager).

Dziękuję za uwagę