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

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Kompozycja i dziedziczenie klas

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

LABORATORIUM 7 Cel: 1_1

Aplikacje w Javie- wykład 11 Wątki-podstawy

Java Podstawy. Michał Bereta

Multimedia JAVA. Historia

Programowanie obiektowe

1 Atrybuty i metody klasowe

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Dokumentacja do API Javy.

Programowanie obiektowe - 1.

Języki i metody programowania Java Lab2 podejście obiektowe

Programowanie obiektowe

Interfejsy i klasy wewnętrzne

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

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

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

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

Kolekcje - pakiet Java Collections Framework

Aplikacje w środowisku Java

Aplikacje w środowisku Java

Szablony funkcji i szablony klas

K_W04 K_W04 K_W04. Opis

Mechanizm dziedziczenia

Programowanie obiektowe i zdarzeniowe

DOSTĘP DO METOD I ZMIENNYCH. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla każdego, Helion 2001)

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

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

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

Enkapsulacja, dziedziczenie, polimorfizm

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

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

Programowanie obiektowe 2 - opis przedmiotu

Aplikacje w środowisku Java

Programowanie obiektowe

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język Java wątki (streszczenie)

Definiowanie własnych klas

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

Kolekcje - pakiet Java Collections Framework

Wykład 9: Polimorfizm i klasy wirtualne

Wprowadzenie do projektu QualitySpy

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

dr inż. Jarosław Forenc

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Programowanie obiektowe

Monika Wrzosek (IM UG) Programowanie obiektowe 21 / 25

Podstawy Języka Java

Technologie i usługi internetowe cz. 2

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Klasy abstrakcyjne i interfejsy

Kontenery i komponenty graficzne

Wprowadzenie do szablonów szablony funkcji

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

Kurs programowania. Wykład 8. Wojciech Macyna

Wprowadzenie do szablonów szablony funkcji

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Definiowanie własnych klas

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Graphic User Interfaces pakiet Swing

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

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

Programowanie współbieżne i rozproszone

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Podstawy Programowania Obiektowego

GUI - projektowanie interfejsów cz. II

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Dziedziczenie i interfejsy

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Wykład 5 Okna MDI i SDI, dziedziczenie

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Programowanie Obiektowe GUI

Java Język programowania

Współbieżność w środowisku Java

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Dziedziczenie. Zadanie 1

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

Zad. 6: Sterowanie robotem mobilnym

Kurs programowania. Wykład 8. Wojciech Macyna. 10 maj 2017

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

DOSTĘP DO METOD I ZMIENNYCH, TABLICE. Dostęp do zmiennych (na podstawie:l.lemay,r.cadenhead,java 2 dla kaŝdego, Helion 2001)

Języki i metody programowania Java. Wykład 2 (część 2)

Programowanie obiektowe

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

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

Programowanie graficznych interfejsów użytkownika

Programowanie 2. Język C++. Wykład 3.

Podstawy Programowania Programowanie Obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Transkrypt:

Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 1 / 15

Zamiast wprowadzenia Dla kogo jest dzisiejszy wykład? Dla osób, które znają język C/C++? Dla osób które zaczynają swoją przygodę z językiem Java? Dla osób zainteresowanych tworzeniem aplikacji dla systemu Android? Czy można nauczyć (nauczyć się) programowania w języku Java w kilka godzin? Spróbujmy napisać prostą aplikację graficzną z elementami animacji i interakcji użytkownika! Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 2 / 15

Zamiast wprowadzenia Spróbujmy napisać prostą aplikację graficzną z elementami animacji i interakcji użytkownika! Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 3 / 15

Krok 0: Prosta aplikacja Kod źródłowy: RuchomeKulki_00.java Cel: Utworzenie aplikacji zdefiniowanie klasy RuchomeKulki zdefiniowanie statycznej metody main() Zagadnienia: definicja klasy, metody statyczne, metoda main() Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 4 / 15

Krok 1: Okno graficzne Kod źródłowy: RuchomeKulki_01.java Cel: Wyświetlenie okna graficznego importowanie klas z pakietu javax.swing dziedziczenie klasy JFrame utworzenie konstruktora utworzenie obiektu reprezentującego okno graficzne Zagadnienia: dziedziczenie, konstruktor, wywołanie konstruktora klasy bazowej Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 5 / 15

Krok 2: Panel rysunkowy Kod źródłowy: RuchomeKulki_02.java Cel: Utworzenie panelu reprezentującego rysunek importowanie klas z pakietu java.awt utworzenie klasy Rysunek dziedziczącej po klasie JPanel utworzenie konstruktora przedefiniowane metody paintcomponent utworzenie obiektu reprezentującego rysunek w oknie graficznym umieszczenie rysunku w oknie graficznym Zagadnienia: przedefiniowanie metody, wywołanie metody z klasy bazowej Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 6 / 15

Krok 3: Figura Kod źródłowy: RuchomeKulki_03.java Cel: Definicja klasy reprezentującej figury na rysunku definicja klasy Figura utworzenie metody rysuj utworzenie obiektu reprezentującego figurę geometryczną na rysunku wyświetlenie figury w metodzie paintcomponent Zagadnienia: wyświetlanie obiektów w panelu rysunku Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 7 / 15

Krok 4: Klasy reprezentujące różne figury Kod źródłowy: RuchomeKulki_04.java Cel: Utworzenie hierarchii klas reprezentujących różne figury na rysunku Object Figura klasa abstrakcyjna Punkt Kolo Klasy pochodne WirujaceKolo KoloroweKolo Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 8 / 15

Krok 4: Klasy reprezentujące różne figury Kod źródłowy: RuchomeKulki_04.java Cel: Utworzenie hierarchii klas reprezentujących różne figury na rysunku definicja abstrakcyjnej klasy Figura definicja klas pochodnych i implementacja metody abstrakcyjnej rysuj utworzenie obiektów reprezentujących różne figury geometryczne wyświetlenie wszystkich figur w metodzie paintcomponent Zagadnienia: klas abstrakcyjna, metoda abstrakcyjna, dziedziczenie pól i metod, implementacja metod abstrakcyjnych, tworzenie obiektów Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 9 / 15

Krok 5: Kolekcja figur Kod źródłowy: RuchomeKulki_05.java Cel: Utworzenie listy do przechowywania wszystkich figur na rysunku importowanie klas z pakietu java.util utworzenie kolekcji listafigur z klasy ArrayList do przechowywania obiektów reprezentujących figury na rysunku próbne utworzenie i dodanie do kolekcji listafigur obiektów reprezentujących różne figury geometryczne modyfikacja wyświetlenia wszystkich figur w metodzie paintcomponent Zagadnienia: klasy sparametryzowane, pakiet Java Collections Framework, rodzaje kolekcji, dodawanie obiektów do kolekcji, przeglądanie obiektów z kolekcji. Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 10 / 15

Krok 6: Animacja ruchu figur Kod źródłowy: RuchomeKulki_06.java Cel: Animacji ruchu wszystkich figur w obrębie rysunku uzupełnienie metod abstrakcyjnych w klasie Figura o dodatkowe metody startanimacji oraz animuj implementacja metod abstrakcyjnych w pozostałych klasach uruchomienie animacji po zakończeniu tworzenia wszystkich obiektów animacja kolejnych klatek animacji Zagadnienia: metody abstrakcyjne, dziedziczenie metod, wywoływanie metod z klasy bazowej, usypianie wątku metoda sleep z klasy Thread. Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 11 / 15

Krok 7: Współbieżny wątek do animacji Kod źródłowy: RuchomeKulki_07.java Cel: Przeniesienie generowania kolejnych klatek animacji do dodatkowego wątku zdefiniowane dodatkowej klasy Animator dziedziczącej po klasie Thread przedefiniowanie metody run w klasie Animator utworzenie obiektu klasy Animator i uruchomienie wątku metodą start uruchomienie animacji wszystkich figur Zagadnienia: tworzenie i uruchamianie współbieżnych wątków Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 12 / 15

Krok 7a: Współbieżny wątek do animacji (klasa wewnętrzna) Kod źródłowy: RuchomeKulki_07a.java Cel: Zdefiniowanie klasy Animator osadzonej wewnątrz klasy Rysunek i przeniesienie do obiektu tej klasy procesu animacji rysunku zdefiniowane klasy Animator dziedziczącej po klasie Thread jako klasy wewnętrznej osadzonej w klasie Ryunek przedefiniowanie metody run w klasie Animator utworzenie obiektu klasy Animator i uruchomienie wątku metodą start uruchomienie animacji wszystkich figur Zagadnienia: definiowanie klasy wewnętrznej Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 13 / 15

Krok 7b: Współbieżny wątek do animacji (klasa anonimowa) Kod źródłowy: RuchomeKulki_07b.java Cel: Utworzenie jednego obiektu klasy anonimowej osadzonej wewnątrz klasy Rysunek i przeniesienie do obiektu tej klasy procesu animacji rysunku utworzenie za pomocą operatora new obiektu klasy anonimowej dziedziczącej po klasie Thread osadzonej w klasie Ryunek przedefiniowanie metody run w klasie anonimowej uruchomienie wątku metodą start uruchomienie animacji wszystkich figur Zagadnienia: definiowanie klasy anonimowej Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 14 / 15

Java Java przykładowa aplikacja Autor: Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki PWr 15 / 15