Wpis z mikrobloga

Kto zna odpowiedź? Ja stawiam na a)

Klasy zagnieżdżone
a) są alternatywą dla dziedziczenia
b) są alternatywą dla polimorfizmu
c) realizują singletony
d) uniemożliwiają hermetyzację

#programowanie
  • 19
  • Odpowiedz
Stawiam na A, bo dziedziczenie to w pewnym sensie klasa (niejawnie) zagnieżdżona.


@ponton: Co Ty gadasz?
A nawet jeśli dziedziczenie to klasa zagnieżdżona, to nie daje to podstaw by twierdzić, że klasa zagnieżdżona to dziedziczenie.
  • Odpowiedz
  • 0
@mamapoth: Stworz sobie w C++ dwie klasy i najpierw zrob ich dziedziczenie, a potem zagniezdzenie i zobacz, jak wygladaja te obiekty w pamieci. Klasy bazowe sa na poczatku obiektu, tak jakby byly dodatkowym polem klasy (zagniezdzone). Wiec w pewnym sensie dziedziczenie to zagniezdzenie.
  • Odpowiedz
@markaron: @MacDada: Imho chodzi o funkcję języka typu http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html Kompozycja to nie zagnieżdżanie klas, tylko powiązanie klas. Jeśli już, to można powiedzieć, iż to zagnieżdżanie obiektów. Niestety bez kontekstu trudno mi strzelić lepiej. Jeżeli na zajęciach, na których padło to pytanie, pracowaliście w języku, który ma "nested classes" ("klasy zagnieżdżone" huh), to prawdopodobnie o to chodzi i odpowiedź to d.
  • Odpowiedz
@MacDada: @Almagest: W żadnym języku bo to przedmiot teoretyczny Paradygmaty Programowania :) Ja programuje zawodowo ( w branży) już 5 lat, znam OOP itd, ale dwuznaczność tego pytania mnie przerosła.

Co do Twojej teorii. W linku, który podałeś piszą, że "nested classes increases encapsulation" czyli nie uniemożliwiają hermetyzacji, jak jest w pytaniu tylko ją poprawiają, ulepszają, więc d odpada.
  • Odpowiedz