Programowanie obiektowe na egzaminie INF.04

INF.04 · teoria
autor: redakcja · 24.08.2026 · aktualizacja: 26.08.2026
Programowanie obiektowe w kwalifikacji INF.04: najważniejsze zasady, przykłady i 106 powiązanych pytań w banku.
Pro­gra­mo­wa­nie obiek­to­we po­rząd­ku­je pro­gram wokół obiek­tów, które mają własny stan i za­cho­wa­nie. Na eg­za­mi­nie trzeba nie tylko znać de­fi­ni­cje, lecz także prze­wi­dzieć wynik dzia­ła­nia krót­kie­go frag­men­tu kodu i roz­po­znać re­la­cję między kla­sa­mi.

Od klasy do obiek­tu

Klasa jest opisem wspól­nych pól i metod, a obiekt kon­kret­nym eg­zem­pla­rzem utwo­rzo­nym na jej pod­sta­wie. Jeśli klasa Konto ma pole saldo i metodę wplac, dwa obiek­ty tej klasy mogą mieć różne salda, ale wy­ko­nu­ją tę samą logikę metody. Kon­struk­tor usta­wia po­praw­ny stan po­cząt­ko­wy, na przy­kład numer ra­chun­ku i saldo równe zero.
Metoda in­stan­cyj­na działa na stanie kon­kret­ne­go obiek­tu. Metoda sta­tycz­na należy do klasy i nie po­trze­bu­je eg­zem­pla­rza, więc nadaje się na przy­kład do funk­cji two­rzą­cej iden­ty­fi­ka­tor. W py­ta­niu z kodem naj­pierw za­znacz, ile obiek­tów po­wsta­ło i które przy­pi­sa­nie zmie­nia pole obiek­tu, a które tylko zmien­ną lo­kal­ną.

Cztery filary w prak­ty­ce

Po­ję­cie
Co ozna­cza
Przy­kład
her­me­ty­za­cja
stan zmie­nia się tylko przez metody
pry­wat­ne saldo, pu­blicz­ne wyplac z kon­tro­lą kwoty
abs­trak­cja
wspól­na umowa bez szcze­gó­łów
klasa abs­trak­cyj­na Figura z metodą pole
dzie­dzi­cze­nie
re­la­cja „jest"
PracownikEtatowy jest Pracownikiem
po­li­mor­fizm
wy­wo­ła­nie zależy od rze­czy­wi­ste­go obiek­tu
figura.pole() liczy pole koła, gdy obiekt to Kolo
Mo­dy­fi­ka­to­ry public, private i protected okre­śla­ją, skąd wolno ko­rzy­stać z ele­men­tu klasy, ale same nie za­stę­pu­ją dobrze za­pro­jek­to­wa­nych metod. In­ter­fejs okre­śla wy­ma­ga­ny zestaw ope­ra­cji: różne klasy, na przy­kład Drukarka i EksporterPdf, mogą re­ali­zo­wać tę samą umowę zapisz bez wspól­ne­go przod­ka. Klasy abs­trak­cyj­nej nie tworzy się bez­po­śred­nio.

Prze­cią­ża­nie i prze­sła­nia­nie to dwie różne rzeczy

Prze­cią­ża­nie ozna­cza kilka metod o tej samej nazwie, ale róż­nych li­stach pa­ra­me­trów:
1
2
3
4
5
6
7
void drukuj(string tekst) { }
void drukuj(string tekst, int kopie) { }
// kompilator wybiera wersje po ARGUMENTACH wywolania
int drukuj(string tekst) { }
// BLAD: sama zmiana typu zwracanego nie tworzy przeciazenia,
// bo typ wyniku nie jest czescia sygnatury
Prze­sła­nia­nie do­ty­czy dzie­dzi­cze­nia: Figura de­kla­ru­je wir­tu­al­ną metodę pole, a Kolo do­star­cza własną im­ple­men­ta­cję. Gdy zmien­na typu Figura wska­zu­je obiekt Kolo, wy­wo­ła­na zo­sta­nie wersja wła­ści­wa dla rze­czy­wi­ste­go obiek­tu: to po­li­mor­fizm czasu wy­ko­na­nia. Nie myl go z ukry­ciem metody, przy którym wybór może za­le­żeć od typu zmien­nej.

Kom­po­zy­cja za­miast sztucz­ne­go dzie­dzi­cze­nia

Kom­po­zy­cja opi­su­je re­la­cję „ma": Samochod ma Silnik, więc prze­cho­wu­je obiekt i prze­ka­zu­je mu za­da­nie uru­cho­mie­nia. Zdanie „Sa­mo­chod jest Sil­ni­kiem" byłoby fał­szy­we, dla­te­go dzie­dzi­cze­nie tu nie pasuje. Po­dob­nie Koszyk może ko­rzy­stać z obiek­tu KalkulatorRabatu, za­miast dzie­dzi­czyć po nim dla jednej metody.
Kom­po­zy­cja uła­twia wy­mia­nę części pro­gra­mu i te­sto­wa­nie ich osobno (jak, po­ka­zu­je ar­ty­kuł o te­sto­wa­niu). Dzie­dzi­cze­nie jest wła­ści­we, gdy klasa po­tom­na rze­czy­wi­ście może za­stą­pić bazową bez ła­ma­nia jej umowy. Na eg­za­mi­nie zadaj dwa py­ta­nia: czy za­cho­dzi re­la­cja „jest", czy je­dy­nie „ma" albo „używa".

Jak czytać kod obiek­to­wy na eg­za­mi­nie

  • 1.
    Roz­pisz klasy od ba­zo­wej do po­tom­nych, za­znacz kon­struk­to­ry, pola sta­tycz­ne i metody prze­sło­nię­te.
  • 2.
    Przejdź in­struk­cje po kolei, za­pi­su­jąc osobno stan każ­de­go obiek­tu.
  • 3.
    Przy wy­wo­ła­niu metody sprawdź typ rze­czy­wi­ste­go obiek­tu, a przy prze­cią­żo­nej liczbę i typy ar­gu­men­tów.
  • 4.
    Zwróć uwagę na ko­lej­ność kon­struk­to­rów, zakres zmien­nych i prze­ka­zy­wa­nie obiek­tów do metod.
Jeżeli dwie zmien­ne wska­zu­ją ten sam obiekt, zmiana jego pola będzie wi­docz­na przez obie. Utwo­rze­nie nowego obiek­tu i przy­pi­sa­nie go do jednej zmien­nej nie zmie­nia obiek­tu wska­zy­wa­ne­go przez drugą. Frag­men­ty kodu do prze­śle­dze­nia znaj­dziesz w ar­ku­szach INF.04.
ZAWODNIK
egzamin zawodowy INF.02 · INF.03 · INF.04
Serwer Discord›
Egzaminy zawodowe IT/Matury/Studia
@yastor
© 2026 Zawodnik · by Yastor
Arkusze i zasady oceniania pochodzą z CKE. Serwis nie jest powiązany z Centralną Komisją Egzaminacyjną.