public class A { public int a; protected void F(); private int x; } public class B : A { public int b; }
public class Pojazd { public virtual void Ruszaj() {...} } public class Rower : Pojazd { public override void Ruszaj() {...} } public class Auto : Pojazd { public override void Ruszaj() {...} }
public abstract class Pojazd { public abstract void Ruszaj(); } public class Rower : Pojazd { public override void Ruszaj() {...} } public class Auto : Pojazd { public override void Ruszaj() {...} }
public interface IPojazd { void Ruszaj(); } public class Rower : IPojazd { void Ruszaj() {...} } public class Auto : IPojazd { void Ruszaj() {...} }
using System; public struct Complex { public int real; public int imaginary; public Complex(int real, int imaginary) { this.real = real; this.imaginary = imaginary; } public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary); } public override string ToString() { return(String.Format("{0} + {1}i", real, imaginary)); } }
Zaprojektuj i zaimplementuj podstawy komputerowej gry RPG, w której może istnieć wiele typów bohaterów. Początkowo system będzie obsługiwał tylko dwa rodzaje postaci (wojownik i mag), jednakże w przyszłości planowane jest rozszerzenie systemu o inne rodzaje bohaterów. Wiadomo jednak, że wszystkie postacie będą opisane nazwą, posiadają pewien poziom żywotności oraz udostępniają operację pozwalającą obliczyć moc ataku postaci na podstawie parametrów charakteryzujących bohatera.
Zaimplementuj klasy reprezentujące dwa typy postaci opisane następującymi atrybutami:
Zadbaj o właściwą hermetyzację, tzn. pola klas nie powinny być publiczne.
Obiekty reprezentujące bohaterów udostępniają następujące operacje:
ToString()
zwracającą napis zawierający informacje o nazwie bohatera oraz wartość żywotności i moc ataku.Zaimplementuj klasę realizującą drużynę bohaterów. Klasa ta przechowuje dowolnie duży zbiór postaci. Dla tej klasy zaimplementuj operacje:
Clone()
implementującą interfejs IClonable
. Metoda zwraca wierną kopię obiektu klonowanego.ToStrong()
, która zwraca napis zawierający nazwę drużyny, sumaryczną moc ataku oraz pełną listę postaci.Napisz program testujący działanie systemu. Utwórz grupę bohaterów o nazwie „Druzyna pierscienia” i umieść w jej składzie przynajmniej po dwie postaci z każdego typu. Zmniejsz żywotność jednego z wojowników do 3% i wypisz w terminalu zawartość drużyny: nawę, sumaryczną wartość mocy ataku i listę uczestników grupy.
Utwórz podstawy systemu zarządzania pracownikami w pewnej firmie.
Zaimplementuj klasę reprezentującą pracownika.
Każdy pracownik opisany jest właściwościami:
Klasa reprezentująca pracownika udostępnia operacje:
ToString()
zwierającą łańcuch znakowy zawierający imię, nazwisko i wysokość pensji pracownikaKażdy kontrakt reprezentowany jest przez obiekt udostępniający publicznie następujące operacje:
Obecnie w firmie podpisywane są 2 rodzaje kontraktów: staż i etat.
Kontrakty określone są przez następujące własności:
Wysokość pensji wyznaczana jest dla każdego z tych kontaktów inaczej, odpowiednio:
Zakładamy, że w przyszłości pojawią się inne typy kontraktów różniące się sposobem naliczania wysokości pensji. Za obliczanie pensji odpowiedzialny jest obiekt klasy kontrakt, który udostępnia metodę publiczną zwracającą wysokość wynagrodzenia za pomocą metody Pensja()
. Dlatego, dodanie nowego typu kontraktu sprowadza się do zaimplementowania tylko jednej klasy, bez potrzeby modyfikowania istniejących już klas.
Zaimplementuj klasy pozwalające reprezentować zbiór figur geometrycznych w dwu wymiarowej przestrzeni.
W układzie współrzędnych umieszczane będą następujące obiekty:
Dodatkowo:
Dla wszystkich figur umieszczanych na wykresie zdefiniuj następujące operacje:
Clone()
zwracającą kopię obiektu (interfejs IClonable
)ToString()
zwracającą odpowiednie informacje o danej figurze w postaci zmiennej typu stringEquals
tak aby dwie figury tego samego typu i o tych samych parametrach (współrzędne, promień, itd. ) były traktowane jako identyczneDla klasy określającej punkt zdefiniuj operację pozwalającą:
Dodatkowo:
DodajPunkt
pozwalającą dodać nowy wierzchołek do wielobokuPrzykładowy diagram UML