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)); } }
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