Dziedziczenie. Zadanie 1

Podobne dokumenty
Programowanie obiektowe

Programowanie obiektowe

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

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

Technologie i usługi internetowe cz. 2

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Języki programowania imperatywnego

Mechanizm dziedziczenia

TEMAT : KLASY DZIEDZICZENIE

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

Mechanizm dziedziczenia

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Aplikacje w środowisku Java

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

Dokumentacja do API Javy.

Podstawy Języka Java

Programowanie obiektowe - zadania

Programowanie obiektowe

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie obiektowe

.NET Klasy, obiekty. ciąg dalszy

1 Dziedziczenie. 1.1 Koncepcja dziedziczenia. Ćwiczenie 3

Logo Komeniusz. Gimnazjum w Tęgoborzy. Mgr Zofia Czech

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

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

Monika Wrzosek (IM UG) Programowanie obiektowe 21 / 25

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

Dziedziczenie i interfejsy

I. Podstawy języka C powtórka

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

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

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

Programowanie obiektowe i zdarzeniowe

LABORATORIUM 7 Cel: 1_1

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

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


Programowanie komputerowe. Zajęcia 7

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

Wykład 5 Okna MDI i SDI, dziedziczenie

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

3.4. Opis konfiguracji layoutów.

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

dr inż. Jarosław Forenc

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ę

C++ - [4-7] Polimorfizm

Wojewódzki Konkurs Matematyczny dla uczniów gimnazjów 13 luty 2014 Czas 90 minut. Rozwiązania zadań

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

Programowanie obiektowe w języku

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

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

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

PHP 5 język obiektowy

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

FIGURY I BRYŁY JEDNOSTKI MIARY KĄTY POLE I OBWÓD OBJĘTOŚĆ I POWIERZCHNIA TRÓJKĄT PROSTOKĄTNY

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ę

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

Aplikacje w środowisku Java

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Programowanie obiektowe - 1.

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

Programowanie i projektowanie obiektowe

Microsoft Small Basic

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Maskowanie i selekcja

Znak wersja podstawowa

Oto przykłady przedmiotów, które są bryłami obrotowymi.

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Dziedziczenie. Tomasz Borzyszkowski

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Wprowadzenie do projektu QualitySpy

I Liceum Ogólnokształcące w Warszawie

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

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

Tematy: zadania tematyczne

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

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

XX edycja Międzynarodowego Konkursu Matematycznego PIKOMAT rok szkolny 2011/2012

Wykład 9: Metody wirtualne i polimorfizm

do instrukcja while (wyrażenie);

Podstawy Programowania Obiektowego

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

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

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

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

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

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

1 Powtórzenie wiadomości

Polimorfizm, metody wirtualne i klasy abstrakcyjne

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

Tytuł: Instrukcja robocza. Cel Zastosuj tę procedurę, aby utworzyć wniosek o wynagrodzenie uzupełniające.

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Wprowadzenie do obiektowości

MsAccess - ćwiczenie nr 3 (zao) Budowa formularzy

Ćwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie

Transkrypt:

Dziedziczenie Zadanie 1 Napisz klasę KolorowyPunkt, która dziedziczy po klasie Punkt a dodatkowo przechowuje informacje o kolorze. Uzupełnij ją o metody umożliwiające pobieranie i ustawianie koloru. Pamiętaj o wywołaniu konstruktora klasy bazowej. Wykorzystaj ją w metodzie Main(). Zadanie 2 Napisz program, w którym będą następujące klasy: Pracownik oraz Kierownik. Klasa Pracownik powinna posiadać następujące pola: imię, nazwisko, nip, data urodzenia, data zatrudnienia, pensja, dział. Klasa Kierownik powinna dziedziczyć po klasie Pracownik i dodatkowo powinna posiadać następujące pola: ilość podwładnych, typ kierownictwa, dodatek funkcyjny (wyrażony w procentach). W obydwóch klasach utwórz konstruktor, który pobierze dane od użytkownika. W klasie Pracownik utwórz metodę wirtualną, która wyświetli informację o pracowniku. Przesłoń ją w klasie Kierownik. W klasie Kierownik utwórz metodę, która pozwoli przyjąć nowego pracownika. W metodzie Main utwórz obiekt klasy Kierownik i wywołaj metody tej klasy. Zadanie 3 Napisz program, w którym będą następujące klasy: Sprzedawca oraz Kierownik Sprzedaży. Klasa Sprzedawca powinna posiadać następujące pola: imię, nazwisko, kod sprzedawcy, do kiedy zatrudniony, dział, wynagrodzenie. Klasa Kierownik Sprzedaży powinna dziedziczyć po klasie Sprzedawca i dodatkowo powinna posiadać następujące pola: uprawnienia, dodatek funkcyjny (wyrażony w procentach). W obydwóch klasach utwórz konstruktor, który pobierze dane od użytkownika. W klasie Sprzedawca utwórz metodę wirtualną, która wyświetli informację o sprzedawcy. Przesłoń ją w klasie Kierownik Sprzedaży. W klasie Kierownik Sprzedaży utwórz metodę, która obliczy i wyświetli płacę z uwzględnieniem dodatku. W metodzie Main utwórz obiekt klasy Kierownik Sprzedaży i Sprzedawca orazi wywołaj metody tych klas.

Zadanie 4 Napisz program, w którym będą dwie klasy: Komputer i KomputerPrzenosny. W klasach tych powinny znajdować się następujące pola: 1. Komputer a. Producent b. Model c. Płyta główna d. Procesor e. Karta graficzna f. Dysk twardy 2. KomputerPrzenosny a. Waga (powinna być z przedziału 1,2 kg 3,5 kg) b. Bateria c. Bluetooth (powinien przyjąć wartość: t lub n ) Klasa KomputerPrzenosny dziedziczy po klasie Komputer. W obydwu klasach utwórz konstruktor, który pobierze dane od użytkownika. Dodatkowo w klasie Komputer przeciąż konstruktor w taki sposób, by wartości pól były parametrami metody. W klasie Komputer utwórz także metodę, która wyświetli informacje o komputerze. Przesłoń ją w klasie KomputerPrzenosny. W metodzie Main() utwórz obiekt klasy KomputerPrzenosny oraz dwa obiekty klasy Komputer (wykorzystując różne konstruktory). Wyświetl informacje o komputerach.

Zadanie 5 Napisz program, w którym będą dwie klasy: Samochod i SamochodOsobowy. W klasach tych powinny znajdować się następujące pola: 1. Samochod a. Marka b. Model c. Nadwozie d. Kolor e. Rok produkcji f. Przebieg (nie może być ujemny) 2. SamochodOsobowy a. Waga (powinna być z przedziału 2 t 4,5 t) b. Pojemność silnika (powinna być z przedziału 0,8-3,0) c. Ilość osób Klasa SamochodOsobowy dziedziczy po klasie Samochod. W obydwu klasach utwórz konstruktor, który pobierze dane od użytkownika. Dodatkowo w klasie Samochod przeciąż konstruktor w taki sposób, by wartości pól były parametrami metody. W klasie Samochod utwórz także metodę, która wyświetli informacje o samochodzie. Przesłoń ją w klasie SamochodOsobowy. W metodzie Main() utwórz obiekt klasy SamochodOsobowy oraz dwa obiekty klasy Samochod (wykorzystując różne konstruktory). Wyświetl informacje o samochodach.

Zadanie 6 Napisz program, w którym będą dwie klasy: Telefon i TelefonDotykowy. W klasach tych powinny znajdować się następujące pola: 1. Telefon a. Producent b. Model c. Waga (powinna być z przedziału 100g-300g) d. Wymiary e. Akumulator f. Maksymalny czas czuwania (powinien być z przedziału 500-900 h) 2. TelefonDotykowy a. System operacyjny b. Typ rysika c. WAP (powinien przyjąć wartość: t lub n ) Klasa TelefonDotykowy dziedziczy po klasie Telefon. W obydwu klasach utwórz konstruktor, który pobierze dane od użytkownika. Dodatkowo w klasie Telefon przeciąż konstruktor w taki sposób, by wartości pól były parametrami metody. W klasie Telefon utwórz także metodę, która wyświetli informacje o telefonie. Przesłoń ją w klasie TelefonDotykowy. W metodzie Main() utwórz obiekt klasy TelefonDotykowy oraz dwa obiekty klasy Telefon (wykorzystując różne konstruktory). Wyświetl informacje o telefonach.

Zadanie 7 Napisz program, w którym będą dwie klasy: Przedmiot i PrzedmiotObowiazkowy. W klasach tych powinny znajdować się następujące pola: 1. Przedmiot a. Nazwa b. Godziny wykład (możliwe: 15 i 30 h) c. Godziny ćwiczenia (możliwe: 15 i 30 h) d. Punty ECTS (powinny być z przedziału 1-8) e. Prowadzący wykład f. Prowadzący ćwiczenia 2. PrzedmiotObowiazkowy a. Kierunek b. Specjalność c. Semestr Klasa PrzedmiotObowiazkowy dziedziczy po klasie Przedmiot. W obydwu klasach utwórz konstruktor, który pobierze dane od użytkownika. Dodatkowo w klasie Przedmiot przeciąż konstruktor w taki sposób, by wartości pól były parametrami metody. W klasie Przedmiot utwórz także metodę, która wyświetli informacje o przedmiocie. Przesłoń ją w klasie PrzedmiotObowiazkowy. W metodzie Main() utwórz obiekt klasy PrzedmiotObowiazkowy oraz dwa obiekty klasy Przedmiot (wykorzystując różne konstruktory). Wyświetl informacje o przedmiotach.

Zadanie 8 W programie utwórz dwie klasy: Czasopismo i Kwartalnik. Kwartalnik dziedziczy po klasie Czasopismo. Tworząc program wykorzystaj poniższe informacje o klasach. Klasa Czasopismo: 1. Pola: - nazwa - wydawnictwo - rok założenia - rok ostatniego numeru - ilość wydań w roku - liczba stron - cena 2. Za pomocą właściwości: - ustal i zwróć wartość dla pola cena (cena powinna być większa od zera), - ustal wartość dla pól rok założenia oraz rok ostatniego numeru, - zwróć wartość pola ilość wydań w roku ((rok ostatniego numeru - rok założenia )/ ilość wydań w roku). 3. Klasa ta posiada następujące metody: - wirtualną służącą do wyświetlania danych o czasopiśmie - abstrakcyjną służącą do określenia typu czasopisma. Klasa Kwartalnik: 1. Pola: - nr ISBN - miesiąc I wydania w roku (styczeń, luty, marzec, kwiecień) - redaktor 2. Metody:

- wyświetlanie danych o kwartalniku - określenie typu kwartalnika: -> nr ISBN brak, brak redaktora kwartalnik nierecenzowany -> nr ISBN brak kwartalnik nierecenzowany -> posiada nr ISBN i redaktora kwartalnik recenzowany -> miesiąc I wydania to styczeń lub luty kwartalnik wydawany z początkiem roku -> miesiąc I wydania to marzec lub kwiecień kwartalnik wydawany z początkiem II kwartału -> rok założenia wcześniejszy niż 2000 i posiada nr ISBN kwartalnik naukowy z długoletnią tradycją -> rok założenia późniejszy niż 2009 nowość Zadanie 9 Utwórz klasę Osoba, która zawiera następujące pola: nazwisko, imię, ulica, kod i miasto oraz dwie metody: wczytaj() i wyswietl(). Pierwsza z metod umożliwia wprowadzenie danych, natomiast druga wyświetla je na ekranie monitora. Dodaj do programu klasę Kadra, która dziedziczy po klasie Osoba oraz zawiera dwa dodatkowe pola: wyksztalcenie i stanowisko oraz dwie dodatkowe metody wczytaj1() i wyswietl1() - wykorzystaj w nich metody z klasy nadrzędnej.

Zadanie 10 Utwórz klasę bazową Figura oraz klasy pochodne według poniższego rysunku.. Klasa Figura ma zawierać: pole: nazwa (domyślnie figura geometryczna) odpowiednie konstruktory metodę Wyswietl() wyświetlającą komunikat: Figura geometryczna Podklasa Kolo ma zawierać: dodatkowe pole definiujące daną figurę (promień koła) odpowiednie konstruktory (skorzystać z konstruktorów klasy bazowej) metodę Pole() predefiniowaną metodę Wyswietl(), która wyświetla komunikat postaci (skorzystać z metody nadklasy): Figura geometryczna nazwa, pole figury:.... Kolejne podklasy mają zawierać: dodatkowe pola definiujące daną figurę (wysokość stożka/walca) konstruktory dodatkową metodę Objetosc() predefiniowaną metodę Pole() obliczającą pole powierzchni bocznej figury

predefiniowaną metodę Wyswietl(), która wyświetla komunikat postaci (skorzystać z metody nadklasy): Figura geometryczna nazwa, pole figury:..., objętość:.... Napisz program testowy definiujący po jednym obiekcie każdej klasy i wyświetlający komunikaty na temat każdego obiektu. Zadanie 11 Napisz program, w którym będą znajdowały się klasy Osoba, Student i Piłkarz (Student i Piłkarz dziedziczą po klasie Osoba). W klasie Osoba powinny znajdować się pola: imię, nazwisko, dataurodzenia oraz wirtualna metoda WypiszInfo. W klasie Student powinny znajdować się pola rok, grupa, nrindeksu oraz metoda WypiszInfo. W klasie Piłkarz powinny znajdować się pola: pozycja, klub, liczbagoli (początkowo wartość 0) oraz metody: WypiszInfo, StrzelGola. Metody WypiszInfo w klasach pochodnych powinny przesłaniać metodę wirtualną. Metoda StrzelGola powinna zwiększać o 1 wartość pola liczbagoli. Zadanie 12 Napisz klasy służące do reprezentowania figur geometrycznych, wykorzystujące mechanizm dziedziczenia: 1. klasa bazowa Figura ma przechowywać informacje na temat koloru, grubości krawędzi oraz wypełnienia (pusta/wypełniona), 2. klasa pochodna Kolo ma zapamiętywać współrzędne środka oraz promień, 3. klasa pochodna Prostokat ma zapamiętywać współrzędne górnego lewego rogu oraz długości boków a i b. Klasy pochodne mają zawierać metodę rysującą, która będzie wypisywała informacje o figurze: kolor, grubość krawędzi, wypełnienie wraz z pozostałymi informacjami, charakterystycznymi dla danej figury. W metodzie Main() zdefiniuj jedną tablicę przechowującą obiekty będące instancjami zarówno klasy Kolo jak i Prostokat. W petli foreach wywołaj dla każdego obiektu metodę rysującą.

Zadanie 13 Napisz klasę abstrakcyjną Figura, która będzie posiadała dwie właściwości: długość i szerokość, które będą pozwalały na przypisanie i odczytanie tych wartości, oraz jedną metodę Obwód, która będzie wyznaczała obwód figury wg. wzoru: obwód = 2 * (długość + szerokość). Następnie utwórz pustą klasę pochodną Prostokąt, dziedziczącą po klasie abstrakcyjnej Figura. Zbuduj przykład wykorzystania zdefiniowanych klas w metodzie Main() programu. Zadanie 14 Do klasy abstrakcyjnej Figura z poprzedniego zadania dodaj definicję metody abstrakcyjnej Powierzchnia, lecz jej nie implementuj. Następnie w klasie pochodnej Prostokąt zaimplementuj metodę Powierzchnia, która będzie zwracała pole powierzchni będące iloczynem długości i szerokości odziedziczone z klasy Figura. Sprawdź w praktyce działanie wprowadzonych zmian. Zadanie 15 Dodaj nową klasę do programu z poprzedniego zadania klasa Kolo ma dziedziczyć po klasie abstrakcyjnej Figura. Ponieważ obwód koła liczy się inaczej niż robi to metoda Obwód, zmień w klasie Figura definicję tej metody na metodę wirtualną zachowując jej dotychczasową zawartość. W klasie Kolo: 3. zaimplementuj metodę Obwód tak, aby poprawnie liczyła obwód koła, 4. zaimplementuj metodę liczącą powierzchnię przyjmując, że promień koła równy jest składowej długość. Sprawdź w praktyce działanie wprowadzonych modyfikacji. Zadanie 16 Do programu z poprzedniego zadania dodaj klasę Kwadrat, która dziedziczy po klasie Prostokąt. Klasa Kwadrat ma pozostać pusta, a przy późniejszym wykorzystaniu tej klasy w metodzie Main() programu należy pamiętać o przypisaniu takiej samej wartości do długości i szerokości. Dodatkowo klasę Kwadrat należy zdefiniować jako zamkniętą, wskazując, że dalsze dziedziczenie po niej nie jest możliwe. W tym celu przed class należy umieścić słowo kluczowe sealed.