Skip to content

Instantly share code, notes, and snippets.

@pjastr
Last active October 28, 2017 15:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pjastr/c17a57b1b0dd143e3008bc9941d17658 to your computer and use it in GitHub Desktop.
Save pjastr/c17a57b1b0dd143e3008bc9941d17658 to your computer and use it in GitHub Desktop.
  1. Wykonaj w ramach jednego projektu następujące polecenia:
  • Stwórz klasę Car.
  • Stwórz w niej nowe prywatne pola double pojemonoscSilnika, string marka.
  • Stwórz obiekt typu Car, czy masz dostęp do jego pól? czy możesz zmienić wartości? (nie zmieniaj pól klasy na publiczne).
  • Do klasy Car dodaj samodzielnie napisany konstruktor bez parametru.
  • Przeciąż konstruktor tworząc nowy: Car(double pojemonoscSilnika, string marka). Niech ten parametryczny konstruktor ustawia wartości pól pojemność silnika oraz marka. (użyj inicjalizatora this).
  • Stwórz nowy obiekt za pomocą konstruktora parametrycznego.
  • Za pomocą debuggera sprawdź jakie warości na prywatnych polach ma obiekt numer 1, a jakie obiekt 2.
  • Zmień modyfikatory dostępu konstruktorów na private. Czy jest możliwe utworzenie nowego obiektu tej klasy? Co się stało z konstruktorem domyślnym?
  • W klasie Car stwórz metodę Create(), która będzie zwracać obiekt.
  • Stwórz obiekt dzięki metodzie Create() (pamiętałeś o dodaniu static do metody? )
  • Utwórz statyczne pole int iloscKol. Następnie stwórz statyczny konstruktor ustawiający wartość tego pola na 4. Jak możesz odwołać się do pola? czy możesz go zmodyfikować? co się zdanie jak dodasz readonly?
  • Uruchom program i w debuggerze sprawdź jaką wartość pola iloscKol ma wczesniej stworzony obiekt.
  • Dodaj w klasie Car stałe pole iloscDrzwi i ustaw mu wartość 4. Jak możesz się do niego odnieść? czy możesz go zmodyfikować?
  • Do klasy Car dodaj destruktor ~Car(), wewnątrz dodaj następujący kod:
Console.WriteLine(„Zwalniam pamięć”);
Console.ReadKey();
  • Uruchom program i zwróć uwagę kiedy następuje zwolnienie pamięci.
  1. Stwórz klasę Bohater z polami: hp typu int, nazwa typu string. Zadbaj o hermatyzację. W klasie dodaj metody:
  • konstrukt parametryczny inicjujący oba pola,
  • Zadaj Cios(int) - metoda obniża hp o podany parametr o ile hp pozostanie dodanie. Jeśli hp jest ujemne lub zero, należy ustawić hp na zero.
  • Stan() - metoda zwraca true jeśli hp jest dodanie, false w przeciwym wypadku
  • Opis() - metoda zwraca string z nazwą bohatera i aktualnym stanem hp.

Następnie w klasie Program stwórz obiekt typu Bohater i przetestuj na nim działanie metod.

  1. Stwórz klasę NaszaKlasa i dodaj w niej publiczne statyczne pole licznik i nadaj mu wartość początkową 0. Chcesz stworzyć licznik instacji obiektów danej klasy. Czy powinno się użyć konstruktora "zwykłego" czy statycznego?

  2. Stwórz klasę Matematyka i dodaj w niej statyczne pole pi i nadaj mu wartość 3.14. Następnie w tej klasie dodaj statyczne metody z 1 parametrem pozwalające obliczyć pole i obwód koła. W klasie Program i metodzie Main przećwiczyć użycie tych metod. Czy możemy dodać modyfikator static do klasy Matematyka? co się zmieni?

  3. W klasie Program poza metodą Main dodaj kod:

        static string OpiszTyp()
        {
            return "Metoda bez argumentów";
        }
        static string OpiszTyp(int x)
        {
            return "Liczba całkowita";
        }
        static string OpiszTyp(string x)
        {
            return "Łańcuch znaków";
        }
        static string OpiszTyp(int x, int y)
        {
            return "Dwie liczby calkowite";
        }

W metodzie Main przetestuj działanie tych metod.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment