- Stwórz nowy projekt, a w nim wykonaj poniższe operacje:
- Stwórz klasę
Osoba
z polamiimie
,nazwisko
,rokUrodzenia
, dodaj domyślny konstruktor i parametryczny, oraz dodaj metodęWypiszInfo()
wyświetlającą wartości obiektu. - Stwórz klasę potomną
Student
z dodatkowymi polamirok
,numerGrupy
,numerAlbumu
, stwórz konstruktury i metodęWypiszInfo()
. - Ustaw modyfikatory dostępu w klasie "rodzica" na
protected
. - W klasie
Osoba
dodaj metodęObliczWiek()
. Następnie stwórz obiekt z klasyStudent
i spróbuj na nim wywołać metodęObliczkWiek()
. - W klasie
Osoba
dodaj polemiejsceZamieszkania
z modyfikatoremprivate
. Spróbuj je wywołać dla obiektu z klasyStudent
. Popraw kod aby wszystko działało. - Stwórz klasę potomną
StudentPierwszegoRoku
dziedziczoną z klasyStudent
iOsoba
. Czy to możliwe? Co w C# możemy jedynie zrobić? - Stwórz obiekt typu
Osoba
z klasyStudent
(np.Osoba student2 = new Student()
). Wywołaj dla niego metodęWypiszInfo()
. - Stwórz nowy obiekt
student3
typuStudent
. Następnie stwórz obiektosoba3
typuOsoba
i podstaw za niegostudent3
. Następnie stwórz obiektstudent4
typuStudent
i podstaw za niegoosoba3
.
Student student3 = new Student();
Osoba osoba3 = student3;
Student student4 = osoba3;
Dla obiektu osoba3
wywołaj metodę WypiszInfo()
. Gdzie jest błąd?
-
W nowym projekcie stwórz klasę
Osoba
z prywatnymi polamiimie
inazwisko
. Następnie stwórz klasę potomnąPacjent
z prywatnym polemwiek
. W klasiePacjent
dodaj konstruktor parametryczny, który ustawi wszystkie pola z klasy bieżącej i "rodzica". -
Stwórz program z klasą
Konto
. Dodaj w niej samodzielnie wybrane pola, metody, konstruktory, opisujące możliwe działania na koncie (saldo początkowe, końcowe, przelew, wpłata/wypłata w kasie, wypłata w bankomacie, płatność kartą, itp).
- Stwórz kilka obiektów, wyciągi dla kont wyświetl na ekranie i zapisz je do pliku tekstowego.
- Stwórz klasy potomne
KontoPrywatne
(rozbuduj o przelew wynagrodzenia, otrzymanie 500+, itp) iKontoFirmowe
(przelewy do ZUS, US). - Rozbuduj program tak, by na początku sprawdzał czy istnieje plik z zapisem historii danego konta - jeśli tak, ponowne uruchomienie programu powinno wykonać dalsze operacje na koncie (a nie nadpisanie dotychczasowych).
- Narysuj diagram UML projektu.
- Zaprojektuj i zaimplementuj podstawy gry RPG. W grze może istnieć kilka typów bohaterów, lecz na początku będą tylko dwa rodzaje – wojownik i łucznik. W przyszłości planowana jest rozbudowa.
- Wiadomo że wszystkie postacie będą opisane imieniem, poziomem życia, oraz posiadać będą operację która pozwoli obliczyć moc ataku.
- Zaimplementuj wojownika i łucznika zgodnie ze schematem:
Łucznik: imię, żywotność (w %), zręczność (liczba całkowita), punkty taktyki (liczba całkowita)
Wojownik: imię, żywotność(w %), siła (liczba całkowita), punkty taktyki (liczba całkowita)
- Zadbaj o hermetyzację w klasach.
- Konstruktor domyślny powinien implementować bohaterów zgodnie ze schematem: Łucznik: Imię=”GoblinA”, żywotność=100%, zręczność=15, PT = 3; Wojownik: Imię=”OrkA”, żywotność=100%, siła=15,PT=1;
- Pozostałe metody:
i. zmiana pkt życia (nie mniej niż 0% i nie więcej niż 100%),
ii. moc ataku (zręczność/siła * PT * żywotność) UWAGA: w przypadku wojownika gdy żywotność spada poniżej 20% wpada w szał i mnożnik żywotności zmienia się na stałe 150%
Pytania: Czy pomyślałeś o klasie rodzica np.bohater? Czy Łucznik i wojownik dziedziczą po bohaterze? Czy ciężko byłoby dodać kolejnych bohaterów? Czy możliwe byłoby stworzenie klasy DrużynaBohaterów i czy miałoby to sens?
- Stwórz przykłady klasy obrazujące inne związki między klasami niż dziedziczenie.