Wpis z mikrobloga

#programowanie #java tworze klase punkt o polach x, y. Potem mam utworzyc klase odcinek o polach opisujących jego położenie. Czy moge tu zastosowac dziedziczenie? Raczej wydaje mi sie ze nie, no bo utworzę odcinek z dwóch nowych obiektów klasy punkt.
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@archlinuxuser: @devaitis: nie kompozycję bo mimo że prawdą jest że odcinek skada się z (nieskończonej) liczby punktów to nie chcesz tego tak implementować.

enkapsulacja ma sens o ile nie potrzebujesz użyć klasy Punku w innym miejscu
  • Odpowiedz
@devaitis: dziedziczenie jest to typ relacji jest. Linia to nie jest punkt, więc nie. Linia posiada punkty, wobec czego należy tu zastosować kompozycję.
  • Odpowiedz
@devaitis: Nie ważne nazwy, ważne żebyś rozumiał o co chodzi :P

W każdym razie dziedziczenie jest w tym przypadku bezsensu.

Zrób klasę odcinek a w niej dwa punkty typu punkt właśnie + odpowiedni konstruktor i kilka metod "standardowych" (sety/gety, długość i co tam jeszcze chcesz).

To pewnie jakaś część ćwiczenia więc na zaliczenie starczy.
  • Odpowiedz
  • 0
@surlin: tak, czesc cwiczeniowego zadania. Jasne, ze tu dziedziczenie nie ma miejsca. Troche zle zrozumialem pytanie. Mialem do odcinka wykorzystac klase punk, nie koniecznie go dziedziczyc.
  • Odpowiedz
Mialem do odcinka wykorzystac klase punk, nie koniecznie go dziedziczyc.


@devaitis: I tak też masz zrobić.

p.s.

Dobrze radzę, jeżeli to początek/środek studiów - zrób jeden, dwa naprawdę porządne własne programy/aplikacje, później dzięki nim (ewentualnie z lekkimi modyfikacjami) sporo ćwiczeń pozaliczasz od ręki na 5 a tam gdzie to nie będzie możliwe wtedy już mając doświadczenie pykniesz beleco.
  • Odpowiedz
@devaitis: Przede wszystkim rozszerzalność, enkapsulacja i czytelność. Teraz, kiedy już masz gotowe "najmniejsze" cegiełki, dodanie kolejnych (e.g. kwadrag) nie powinno nastręczać żadnych trudności, przy równoczesnym zachowaniu wcześniej wymienionych cech.

Co do narzutu pracy, to on też nie powinien być zbyt duży. IMO wystarczy Tobie jeden konstruktor, ten z punktami. Dodatkowo niech linia(punkt też) będzie obiektem niemutowalnym, tzn. jedyny moment kiedy możesz wpłynąć na jej stan, to jest przy konstrukcji. W
  • Odpowiedz
Trochę bez sensu, po co mi ten zabieg?


@devaitis: Chodzi o czytelność i naukę :)

Dodatkowo niech linia(punkt też) będzie obiektem niemutowalnym, tzn. jedyny moment kiedy możesz wpłynąć na jej stan, to jest przy
  • Odpowiedz