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

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

Projektowanie aplikacji internetowych laboratorium

Programowanie obiektowe i zdarzeniowe

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

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

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

Java Podstawy. Michał Bereta

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

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

Aplikacje w środowisku Java

Programowanie obiektowe

Dokumentacja do API Javy.

Ćwiczenia 9 - Swing - część 1

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Podstawy obiektowości

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

Polimorfizm. dr Jarosław Skaruz

Programowanie obiektowe

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Przykład -

Aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium

Wykład 7: Pakiety i Interfejsy

Programowanie Obiektowe GUI

Dziedziczenie. dr Jarosław Skaruz

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

Metody Metody, parametry, zwracanie wartości

Rozdział 4 KLASY, OBIEKTY, METODY

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

Programowanie w JAVA Lab. 5 - Wątki. 1. Wykorzystując metodę Monte Carlo narysować wykres funkcji oraz obliczyć całkę: 7 x ) xy, 8,8

Języki i metody programowania Java Lab4 podejście obiektowe, zastosowanie pojemników

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java: interfejsy i klasy wewnętrzne

Wykład 5 Okna MDI i SDI, dziedziczenie

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

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

Wykład 4: Klasy i Metody

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Kontenery i komponenty graficzne

PHP 5 język obiektowy

Technologie i usługi internetowe cz. 2

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

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

Programowanie obiektowe

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

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

KLASY, INTERFEJSY, ITP

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

TEMAT : KLASY DZIEDZICZENIE

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Kurs WWW. Paweł Rajba.

Wykład 6: Dziedziczenie

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Dziedziczenie. Zadanie 1

Mechanizm dziedziczenia

LABORATORIUM 7 Cel: 1_1

Wykład 5: Więcej o Klasach i Metodach

Aplikacje w środowisku Java

Programowanie obiektowe

Podstawy Języka Java

Aplikacje internetowe i rozproszone - laboratorium

Programowanie w Javie

Programowanie obiektowe w języku

Języki i techniki programowania Ćwiczenia 4 Wzorce

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Podstawy Języka Java

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Mechanizm dziedziczenia

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

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Deklaracja i definicja metod, zwracanie wartości z metod, przekazywania parametrów do metod

Klasy abstrakcyjne i interfejsy

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Enkapsulacja, dziedziczenie, polimorfizm

Programowanie obiektowe

Systemy Rozproszone - Ćwiczenie 6

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

Programowanie w Javie wykład 8 Interfejsy

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

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

Klasy abstrakcyjne, interfejsy i polimorfizm

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

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

Zaawansowane aplikacje internetowe

3.1. Obliczanie obwodu koła.

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Katalog książek cz. 2

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Transkrypt:

PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static przypomnienie. 1. Utwórz nowy projekt o nazwie 01_static (opcja Create Main Class powinna być zaznaczona). 2. Dodaj nową klasę (New -> Java Class) o nazwie AlgorytmyZwykle i umieść w niej metodę schemathornera: public double schemathornera(double x, double[] wsp) { double w = wsp[0]; for (int i = 1; i < wsp.length; i++) { w = w * x + wsp[i]; return w; 3. Następnie dodaj nową klasę o nazwie AlgorytmyStatic i umieść w niej metodę stałą o nazwie schemathornera: public static double schemathornera(double x, double[] wsp) { double w = wsp[0]; for (int i = 1; i < wsp.length; i++) { w = w * x + wsp[i]; return w; 4. Przetestuj działanie obu metod, na przykład poprzez wywołanie w funkcji main poniższych instrukcji: double[] wsp = {1,0,0,1; AlgZwykle alg = new AlgZwykle(); System.out.println(alg.schematHornera(2, wsp)); System.out.println(AlgStale.schematHornera(2, wsp)); Pytanie: Jaka jest różnica pomiędzy tymi metodami?

Zadanie 2: Użycie interface przypomnienie. 1. Utwórz nowy projekt o nazwie 02_Interface. 2. Dodaj interface (New -> Java Interface) o nazwie Funkcja posiadający metodę: double obliczwartosc(double x); 3. Utwórz nową klasę o nazwie FunkcjaLiniowa implementującą interfejs Funkcja. Klasa ta powinna posiadać pola prywatne: private double a, b; oraz konstruktor ustawiający wartości pól na podstawie parametrów. 4. Zwróć uwagę, iż skoro utworzona przez Ciebie klasa FunkcjaLiniowa implementuje interfejs Funkcja, klasa ta musi posiadać implementacje metod zawartych w tym interfejsie. Zaimplementuj teraz metodę obliczwartosc, która zwraca wartość funkcji liniowej (tzn. a*x+b). 5. Utwórz nową klasę o nazwie FunkcjaStala implementującą interfejs Funkcja. Klasa ta powinna posiadać pole prywatne: private double c; // wartość funkcji stałej oraz konstruktor ustawiający wartość pola na podstawie parametru. 6. Klasa FunkcjaStala implementuje interfejs Funkcja, a zatem również musi posiadać swoją implementację metody obliczwartosc. Zaimplementuj tą metodę tak, aby zawracała wartość funkcji stałej. 7. Przetestuj działanie obu metod. Wykorzystaj do tego dodatkową metodę statyczną wartoscfunkcji utworzoną w głównej klasie, która zwraca wartość wybranej funkcji w podanym punkcie x. Przykładowe testowanie może wyglądać następująco: public static void main(string[] args) { Funkcja funkcjalin = new FunkcjaLiniowa(2, -1); System.out.println(wartoscFunkcji(funkcjaLin, 1)); Funkcja funkcjast = new FunkcjaStala(-7); System.out.println(wartoscFunkcji(funkcjaSt, 1010)); public static double wartoscfunkcji(funkcja f,double x){ return f.obliczwartosc(x); Praca domowa na ocenę: dodaj funkcję 3. stopnia oraz funkcję wielomianową (wykorzystaj schemat Hornera do policzenia jej wartości).

Zadanie 3: Dziedziczenie komponentów. 1. Przygotuj klasę Punkt (New -> Java Class) przechowującą współrzędne punktu o współrzędnych x i y będących liczbami rzeczywistymi. W klasie umieść konstruktory, gettery i settery oraz metodę tostring: 2. Utwórz klasę Koło dziedziczącą po klasie Punkt, posiadającą pole rzeczywiste r określające promień koła. W klasie umieść konstruktory, gettery, settery oraz metodę tostring. Dodaj metody pozwalające na obliczenie pola i obwodu koła: Metody pole oraz obwod: public double pole(){ return Math.PI*c*c; public double obwod(){ return 2*Math.PI*c; 3. Zadeklaruj dowolne obiekty reprezentujące punkt i koło, np. Punkt p = new Punkt(3,5); Kolo k = new Kolo(8,p); a następnie przetestuj działanie metod pole i obwód. 4. Dodaj nową formatkę (New -> JFrame Form) o nazwie MainFrame i umieść na niej komponent Panel.

5. Utwórz nową klasę MyPanel dziedziczącą po JPanel. Zaimplementuj w niej metodę paint: 6. W podobny sposób nadpisz w klasie MyPanel metodę repaint. 7. Teraz musimy przypisać do panelu nasz własny kod. W tym celu kliknij prawym przyciskiem myszy na panelu i wybierz opcję Customize Code: a. Zmień opcję default code na custom creation: b. Zmień znajdujący się tam kod, ustawiając dla jpanel1 Twoją klasę MyPanel:

8. Aby uruchomić program wraz z widoczną formatką, dodaj do funkcji main kod: MainFrame mf = new MainFrame(); mf.setvisible(true); Tym razem, pomimo zmiany rozmiaru okna, nasz napis nie znika! Zadanie 4: Stwórz program, który rysuje uśmiechniętą buźkę. 1. Utwórz nowy projekt (opcję Create Main Class pozostaw zaznaczoną), a następnie dodaj nową formatkę (New -> JFrame Form) o nazwie MainFrame i umieść na niej komponent Panel.

2. Wykorzystaj instrukcję z zadania 3 i podpunktów od 5 do 8, aby na panelu narysować uśmiechniętą buźkę. W utworzonej przez Ciebie klasie dziedziczącej po JPanel (patrz zadanie 4 pkt. 5) zaimplementuj metodę paint w poniższy sposób: a. aby narysować twarz i oczy wykorzystaj filloval np: b. do narysowania ust wykorzystaj drawarc i dodaj do metody paint na przykład poniższy kod: c. pamiętaj, aby przypisać do panelu kod z utworzonej przez Ciebie klasy z metodą paint i repint (patrz zadanie 4 pkt. 7). 3. Rozwiń program tak, aby narysować dwie buźki - jedną uśmiechniętą, a drugą smutną. Zadanie 5 zadanie dodatkowe: Spróbuj zmodyfikować zadanie 2 z ćwiczeń z poprzedniego tygodnia tak, aby kształt elipsy i kwadratu nie znikały wraz ze zmianą rozmiaru okna (wskazówka: klasa musi posiadać pole int przechowujące informacje o typie figury do odrysowania).