![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mój "problem" dotyczy programowania obiektowego. W moim przypadku chodzi o javę, ale myślę, że to dotyczy ogólnie programowania obiektowego.
Dajmy na to, mam klasę abstrakcyjną typu wielokąt:
Następnie robię sobie klasę trójkąt:
W analogiczny sposób robię sobie klasy czworokąt, pięciokąt itd. Następnie w kodzie mam wiele instancji tych klas (trójkątów, czworokątów itd.) Okazuje się, że mój kod jest nieco pamięciożerny, bo liczba kątów dla klasy trójkąt zawsze będzie równa 3, a ja tworzę dla każdej instancji klasy osobną zmienną. Niby z pomocą przychodzą zmienne statyczne, ale jeśli takową zadeklaruję w klasie wielokąt, to liczba kątów dla trójkąta i czworokąta będzie taka sama. Muszę więc zadeklarować tą zmienną statyczna w klasach potomnych, czyli w trójkącie, czworokącie,...,n-kącie. Ale wtedy moje metody zdefiniowane w klasie wielokąt nie będą działały, bo przecież w klasie wielokąt nie ma zmiennej o nazwie liczbaKątów. Ratunkiem jest stworzenie tych metod w klasach potomnych, a w klasie nadrzędnej zostawić tylko "abstrakcyjne nagłówki". Jednak... nie bardzo mi to pasuje, bo każda z tych metod (setter i getter) bedzie wyglądał tak samo. Nie chcę więc powielać kodu. jak temu zaradzić ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 04:40 |