Klasa z konstruktorem i metodami
Klasa Kosc, klasa operująca na tablicy, walidator PESEL — w każdym arkuszu INF.04 pierwsze zadanie to napisanie klasy. Schemat, który punktuje, niezależnie od tematu.
Pierwsza część praktycznej z INF.04 to prawie zawsze aplikacja konsolowa z jedną klasą. Raz jest to klasa reprezentująca kość do gry, raz operacje na tablicy, raz walidator numeru. Temat się zmienia, budowa nie — i to jest dobra wiadomość, bo szkielet możesz mieć w głowie gotowy.
1. Szkielet, który pasuje do każdego tematu
class Kosc
{
private int liczbaScian;
private Random generator;
// konstruktor
public Kosc(int liczbaScian)
{
this.liczbaScian = liczbaScian;
this.generator = new Random();
}
// metoda główna klasy
public int Rzut()
{
return generator.Next(1, liczbaScian + 1);
}
// getter wymagany przez arkusz
public int GetLiczbaScian()
{
return liczbaScian;
}
}Trzy elementy, których arkusz zawsze wymaga
Pola prywatne, konstruktor przypisujący wartości i metody publiczne udostępniające działanie. Jeśli treść wymienia nazwy pól albo metod, przepisz je co do znaku — egzaminator sprawdza zgodność z poleceniem, nie elegancję.
2. Hermetyzacja, czyli dlaczego pola są prywatne
Publiczne pole daje dostęp do wnętrza obiektu każdemu i pozwala ustawić wartość bezsensowną — kość o zerowej liczbie ścian, ujemny wiek, pusty numer. Pole prywatne z metodą dostępową pozwala sprawdzić wartość, zanim się ją przyjmie:
public void SetLiczbaScian(int wartosc)
{
if (wartosc < 4)
throw new ArgumentException("Kość musi mieć co najmniej 4 ściany");
liczbaScian = wartosc;
}To zwykle osobno punktowany element, a przy okazji naturalne wejście do zadania z testami jednostkowymi, które w arkuszu z 2026 roku było trzecią częścią egzaminu.
3. Błędy, które widać w pierwszej minucie sprawdzania
- Nazwa klasy inna niż w poleceniu. Arkusz mówi
Kosc, w kodzie jestDice— punkt przepada, choć program działa. - Konstruktor bez parametrów, gdy treść ich wymaga. Wartości ustawione na sztywno wewnątrz klasy nie realizują polecenia.
- Nowy
Randomtworzony przy każdym rzucie. Kolejne wywołania zwracają tę samą liczbę — generator ma powstać raz, w konstruktorze. - Cały kod wrzucony do
Main. Zadanie wprost prosi o klasę i bez niej nie ma czego oceniać.
Podstawy programowania obiektowego rozpisaliśmy w teorii INF.04.
Kolejne zagadnienie, które warto mieć opanowane:
Walidacja danych wejściowych i cyfra kontrolna →