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

Podobne dokumenty
Monika Wrzosek (IM UG) Programowanie obiektowe 21 / 25

Programowanie obiektowe - zadania

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe

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

TEMAT : KLASY DZIEDZICZENIE

Technologie i usługi internetowe cz. 2

Programowanie obiektowe

Języki programowania imperatywnego

Programowanie obiektowe

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

Podstawy Języka Java

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

Podstawy i języki programowania

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie

Programowanie w Internecie. Java

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Dziedziczenie. Zadanie 1

Dziedziczenie. dr Jarosław Skaruz

Języki i techniki programowania Ćwiczenia 2

Projektowanie aplikacji internetowych laboratorium

Przypomnienie o klasach i obiektach

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Aplikacje w środowisku Java

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

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

Java SE Laboratorium nr 2. Temat: Obiektowość

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

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

Podstawy programowania obiektowego

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

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

Typy sparametryzowane

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Programowanie w języku Java

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

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Mechanizm dziedziczenia

C++ - [4-7] Polimorfizm

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Podstawy i języki programowania

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

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

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Programowanie obiektowe

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Programowanie i projektowanie obiektowe

Programowanie obiektowe

Zaawansowane aplikacje WWW - laboratorium

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

Wykład 4: Klasy i Metody

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

Podstawy obiektowości

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

Podstawy Programowania Obiektowego

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

Wprowadzanie danych z klawiatury. Wyjątki związane z wprowadzaniem danych, przekroczeniem rozmiaru tablicy, dzieleniem przez zero itd.

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

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi

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

Zadania z podstaw programowania obiektowego

PARADYGMATY PROGRAMOWANIA Wykład 4

Wprowadzenie do języka Java

Dokumentacja do API Javy.

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

dziedziczenie - po nazwie klasy wystąpią słowa: extends nazwa_superklasy

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Podstawy i języki programowania

Wykład 2: Podstawy Języka

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

Programowanie obiektowe

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Języki i metody programowania Java INF302W. Wykład 1 (część 1) na podstawie Autor Dr inż. Zofia Kruczkiewicz

.NET Klasy, obiekty. ciąg dalszy

Plik klasy. h deklaracje klas

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

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

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

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

Programowanie obiektowe

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Języki programowania imperatywnego

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Programowanie obiektowe w języku

Wykład 5 Okna MDI i SDI, dziedziczenie

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Wstęp do Programowania 2

Wykład 6: Dziedziczenie

Podstawy i języki programowania

Transkrypt:

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java: p u b l i c c l a s s Punkt { i n t x, y ; Punkt ( ) { x = 1 ; y = 1 ; Punkt ( i n t wspx, i n t wspy ) { x = wspx ; y = wspy ; Punkt ( Punkt A) { x = A. x ; y = A. y ; i n t p o b i e r z X ( ) { r e t u r n x ; i n t p o b i e r z Y ( ) { r e t u r n y ; v o i d w y s w i e t l ( ) { System. out. p r i n t l n ( " x = " + x + ", y = " + y ) ; Monika Wrzosek (IM UG) Programowanie obiektowe 14 / 21

Zad.17. (patrz wykład) Utwórz nowy projekt, umieść w nim plik Punkt.java z kodem klasy Punkt. W nowym pliku utwórz klasę Punkt3D, służącą do przechowywania punktów w trzech wymiarach, dziedziczącą po klasie Punkt: p u b l i c c l a s s Punkt3D e x t e n d s Punkt { i n t z ; Korzystając z metod klasy Punkt i składni super, dopisz do klasy Punkt3D: 1. konstruktor bezargumentowy, 2. konstruktor przyjmujący trzy argumenty typu int, 3. konstruktor przyjmujący parametr typu Punkt i parametr typu int, 4. konstruktor przyjmujący parametr typu Punkt3D, 5. metodę void wyswietl(); - wypisującą wartości trzech współrzędnych, przesłaniającą metodę o tej samej nazwie z klasy Punkt, 6. metodę zwracającą wartość pola z. W nowym pliku utwórz klasę Main z metodą main i przetestuj wszystkie napisane metody. Monika Wrzosek (IM UG) Programowanie obiektowe 15 / 21

Zad.18. W osobnych plikach utwórz klasy o nazwie Bazowa, zawierającą pole typu int o nazwie liczba, Potomna, dziedziczącą po klasie Bazowa i również zawierającą pole liczba. W klasie Potomna zdefiniuj metodę pobierzwartosc, przyjmującą jeden argument typu boolean. Jeśli wartością argumentu będzie - true: metoda zwróci wartość pola liczba zdefiniowanego w klasie Potomna, - false: metoda zwróci wartość pola liczba odziedziczonego po klasie Bazowa. W klasie Main i metodzie main utwórz obiekt klasy Potomna i wywołaj metodę pobierzwartosc. Zad.19. Do klasy Potomna z poprzedniego zadania dopisz metodę ustawwartosc przyjmującą dwa argumenty: pierwszy typu int, drugi typu boolean. Jeśli wartością drugiego argumentu będzie - true: wartość pierwszego przypisz polu liczba zdefiniowanemu w Potomna, - false: wartość pierwszego przypisz polu liczba zdefiniowanemu w klasie Bazowa. W klasie Main i metodzie main utwórz obiekt klasy Potomna i wywołaj metodę ustawwartosc. Monika Wrzosek (IM UG) Programowanie obiektowe 16 / 21

Zad.20. Utwórz klasę Auto, która zawiera: pole float[] przebieg; - tablicę przechowującą informację o liczbie przejechanych kilometrów w kolejnych miesiącach, jej rozmiar to 12; tablica jest inicjalizowana dowolnymi wartościami w konstruktorze. metodę float srprzebieg(); - obliczającą średni przebieg dla samochodu. Utwórz klasę Taxi, która dziedziczy po klasie Auto i zawiera: pole float[] zarobki; - tablicę przechowującą informację o zarobkach taksówkarza w kolejnych miesiącach, jej rozmiar to 12; tablica jest inicjalizowana dowolnymi wartościami w konstruktorze. metodę float srzarobki(); - obliczającą średnie zarobki dla taksówki. W klasie Main i metodzie main utwórz obiekt klasy Taxi i wyświetl na ekranie średni przebieg i średnie zarobki. Monika Wrzosek (IM UG) Programowanie obiektowe 17 / 21

Polimorfizm Zad.21. W którym miejscu poniższego kodu można zaobserwować polimorfizm? Na czym on polega? p u b l i c c l a s s F i g u r a { f l o a t f, g ; F i g u r a ( f l o a t a, f l o a t b ) { f = a ; g = b ; f l o a t p o l e ( ) { System. out. println ( " Niezdefiniowane " ) ; r e t u r n 0 ; p u b l i c c l a s s P r o s t o k a t e x t e n d s F i g u r a { P r o s t o k a t ( f l o a t a, f l o a t b ) { s u p e r ( a, b ) ; f l o a t p o l e ( ) { System. out. p r i n t l n ( " P r o s t o k a t " ) ; r e t u r n f g ; p u b l i c c l a s s T r o j k a t e x t e n d s F i g u r a { T r o j k a t ( f l o a t a, f l o a t b ) { s u p e r ( a, b ) ; f l o a t p o l e ( ) { System. out. p r i n t l n ( " T r o j k a t " ) ; r e t u r n f g / 2 ; p u b l i c c l a s s Test { p u b l i c s t a t i c v o i d main ( String args [ ] ) { F i g u r a f i g = new F i g u r a ( 1, 4 ) ; Prostokat p = new Prostokat ( 5, 1 0 ) ; Trojkat t = new Trojkat ( 6, 2 ) ; F i g u r a a ; a = p ; System. out. p r i n t l n ( a. p o l e ( ) ) ; a = t ; System. out. p r i n t l n ( a. p o l e ( ) ) ; a = f i g ; System. out. p r i n t l n ( a. p o l e ( ) ) ; Monika Wrzosek (IM UG) Programowanie obiektowe 18 / 21

Zad.22. Przeanalizuj i przetestuj podany kod. p u b l i c c l a s s T e l e f o n { p r i v a t e S t r i n g n r T e l ; p r i v a t e i n t l a c z n y C z a s ; p r i v a t e s t a t i c double cenarozmowy = 0. 4 8 ; T e l e f o n ( S t r i n g numer ) { n r T e l = numer ; double obliczkwotedozaplaty ( ) { r e t u r n cenarozmowy ( l a c z n y C z a s / 6 0 ) ; s t a t i c void ustawcenerozmowy ( double nowacena ){ cenarozmowy = nowacena ; v o i d zadzwon ( S t r i n g nr ) { System. out. p r i n t l n ( " Dzwonie do : " + nr ) ; System. out. p r i n t l n ( "Rozmowa w toku... " ) ; i n t czasrozmowy = ( i n t ) ( Math. random ( ) 3 6 0 0 ) ; l a c z n y C z a s = l a c z n y C z a s + czasrozmowy ; System. out. p r i n t l n ( "Rozmowa zakonczona. " ) ; System. out. p r i n t ( " Czas rozmowy : "+ czasrozmowy /60 + " min, " + czasrozmowy%60 + " s e k. " ) ; Monika Wrzosek (IM UG) Programowanie obiektowe 19 / 21

p u b l i c c l a s s Main { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ){ T e l e f o n t e l A l a = new T e l e f o n ( " 783982331 " ) ; T e l e f o n t e l O l a = new T e l e f o n ( " 608234982 " ) ; t e l A l a. zadzwon ( " 0124239832 " ) ; t e l O l a. zadzwon ( " 112 " ) ; double kwota = t e l A l a. o b l i c z K w o t e D o Z a p l a t y ( ) ; System. out. p r i n t l n ( " Ala ma do zap ł a t y : " + kwota + " z l. " ) ; Z klasy Telefon wyprowadź dwie klasy pochodne: TelefonKomorkowy i TelefonStacjonarny. Każda z tych klas powinna posiadać nowe pola (np. operator, prefiks), nowe metody (np. wyślijsms), własną implementację metody zadzwon(string) (przesłanianie). Utwórz tablicę typu Telefon, np: T e l e f o n [ ] t a b l i c a T e l e f o n o w = new T e l e f o n [ 3 ] ; t a b l i c a T e l e f o n o w [ 0 ] = new T e l e f o n ( " 634295432 " ) ; t a b l i c a T e l e f o n o w [ 1 ] = new TelefonKomorkowy ( " 504295432 ", "T m o b i l e " ) ; t a b l i c a T e l e f o n o w [ 2 ] = new T e l e f o n S t a c j o n a r n y ( " 126493042 ", " 058 " ) ; Zauważ, że poszczególne elementy tablicy zawierają referencje zarówno do obiektów klasy Telefon, jak również do obiektów klas pochodnych. Dla każdego elementu tablicy wywołaj metodę zadzwon. Czy wywołania te były polimorficzne? Dlaczego? Monika Wrzosek (IM UG) Programowanie obiektowe 20 / 21