Programowanie obiektowe — wprowadzenie

  1. Proszę zdefiniować klasy reprezentujące podstawowe figury geometryczne: kwadrat, prostokąt, koło. Każda z klas powinna przechowywać w prywatnych polach informacje potrzebne do obliczenia pola powierzchni i obwodu danej figury. Dla każdego pola prywatnego należy zdefiniować metodę ustawiającą i pobierającą wartość. Należy zadbać o to, aby nie było możliwe ustawienie ujemnej wartości parametrów figur (np. boku kwadratu czy promienia koła). Każda klasa powinna posiadać zdefiniowane metody obliczające pole powierzchni figury oraz jej obwód. Należy również zdefiniować dla każdej klasy konstruktor bezparametrowy oraz konstruktor ogólny. Proszę napisać program pozwalający na obliczanie pól i obwodów figur płaskich, realizowane z wykorzystaniem zdefiniowanych klas.
  2. Proszę zdefiniować klasę pozwalającą na przechowywanie informacji o osobie. Klasa ma umożliwiać przechowywanie: imienia, nazwiska, adresu e-mail oraz roku urodzenia. Domyślne wartości pół łańcuchowych to łańcuch pusty (“”), dla roku urodzenia to 0. Wszystkie informacje mają być przechowywane w polach prywatnych, dla każdego pola należy zdefiniować metody ustawiania/pobierania wartości. Metody ustawiania imienia i nazwiska powinny kontrolować i formatować zawartość pól. Jeżeli łańcuch znaków przekazany jako parametr metody ustawiającej imię będzie zawierał znak inny niż litera, taki łańcuch znaków jest odrzucany i przyjmuje się dla pola imię wartość “Nieznane”. Dla poprawnych imion pierwsza litera ma być ustawiana na dużą, pozostałe litery powinny być literami małymi. Podobnie powinno być w przypadku nazwisk, przy czym tutaj dozwolonym znakiem dla nazwisk dwuczłonowych jest znak ‘-’. W przypadku nazwisk dwuczłonowych pierwsza litera po znak ‘-’ powinna być literą dużą. Należy kontrolować poprawność adresu e-mail, proszę zaproponować metodę weryfikacji oferującą podstawowe czynności kontrolne (obezność znaku ‘@’ i znaków kropki). Zakładamy, że ustawiana data urodzenia nie powinna być mniejsza niż 1900 a większa niż rok aktualny.
    Proszę dla każdej metody ustawiającej wartości pól przygotować zestaw testów oraz napisać program testujący poprawność działania metod zdefiniowanej klasy.