Python daje nam możliwość tworzenia „prywatny” metod i zmiennych w klasie przez poprzedzenie podwójne podkreślenia do nazwy, na przykład: __myPrivateMethod(). Jak zatem to wyjaśnić >>> class MyClass: ... def myPublicMethod(self): ... print 'public method' ... def __myPrivateMethod(self): ... print 'this is private!!' ... >>> obj = MyClass() >>> obj.myPublicMethod() public …
Czytałem przez C ++ FAQ i byłem ciekawy frienddeklaracji. Osobiście nigdy go nie używałem, ale interesuje mnie odkrywanie języka. Jaki jest dobry przykład używania friend? Trochę dłużej czytając FAQ Podoba mi się pomysł << >>przeciążania operatora i dodawania go jako przyjaciela tych klas. Nie jestem jednak pewien, w jaki sposób …
Próbuję zrozumieć różnicę między __getattr__a __getattribute__jednak jestem braku na niego. Odpowiedź na pytanie przepełnienie stosu Różnica między __getattr__VS__getattribute__ mówi: __getattribute__jest wywoływany przed spojrzeniem na rzeczywiste atrybuty obiektu, więc może być trudny do prawidłowego wdrożenia. Bardzo łatwo możesz skończyć w nieskończonych rekurencjach. Nie mam pojęcia, co to znaczy. Następnie mówi: Prawie …
Czy możesz mi powiedzieć, jaka jest różnica między abstrakcją a ukrywaniem informacji podczas tworzenia oprogramowania? Jestem zdezorientowany. Abstrakcja ukrywa implementację szczegółów, a informacja ukrywa abstrakcyjne szczegóły czegoś. Aktualizacja: znalazłem dobrą odpowiedź na te trzy koncepcje. Zobacz oddzielną odpowiedź poniżej na kilka cytatów zaczerpniętych z tego miejsca .
Załóżmy, że mam metodę, która zwraca widok tylko do odczytu do listy członków: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Ponadto przypuśćmy, że wszystko, co robi klient, to powtórzenie …
Mam w projekcie dwa pakiety: odp.proji odp.proj.test. Są pewne metody, które chcę, aby były widoczne tylko dla klas w tych dwóch pakietach. W jaki sposób mogę to zrobić? EDYCJA: Jeśli w Javie nie ma koncepcji podpakietu, czy można to obejść? Mam pewne metody, które chcę, aby były dostępne tylko dla …
Jeśli dobrze rozumiem, typowym mechanizmem wstrzykiwania zależności jest wstrzyknięcie albo przez konstruktor klasy, albo przez właściwość publiczną (składową) klasy. To uwidacznia wstrzykiwaną zależność i narusza zasadę hermetyzacji OOP. Czy mam rację w identyfikacji tego kompromisu? Jak radzisz sobie z tym problemem? Zobacz także moją odpowiedź na moje własne pytanie poniżej.
Oba wzorce projektowe hermetyzują algorytm i oddzielają szczegóły implementacji od ich klas wywołujących. Jedyną różnicą, jaką mogę dostrzec, jest to, że wzorzec Strategy przyjmuje parametry do wykonania, podczas gdy wzorzec Command nie. Wydaje mi się, że wzorzec polecenia wymaga, aby wszystkie informacje do wykonania były dostępne, gdy jest tworzony, i …
Mam projekt, w którym często używamy Integer.parseInt()do konwersji ciągu znaków na int. Gdy coś pójdzie nie tak (na przykład Stringnie jest liczbą, ale literą alub czymkolwiek), ta metoda zgłosi wyjątek. Jeśli jednak muszę wszędzie obsługiwać wyjątki w moim kodzie, bardzo szybko zaczyna to wyglądać bardzo brzydko. Chciałbym to przedstawić w …
Miałem dzisiaj wywiad. Miałem pytanie z OOP , o różnicy między Encapsulation & abstrakcji ? Odpowiedziałem jej, zgodnie z moją wiedzą, że enkapsulacja polega w zasadzie na wiązaniu członków danych i funkcji składowych w pojedynczą jednostkę o nazwie Class . Natomiast abstrakcja ma na celu ukrycie złożoności implementacji i zapewnienie …
W TypeScript 3.8+ jakie są różnice między użyciem privatesłowa kluczowego do oznaczenia członka jako prywatny: class PrivateKeywordClass { private value = 1; } I używając #prywatnych pól proponowanych dla JavaScript : class PrivateFieldClass { #value = 1; } Czy powinienem preferować jeden od drugiego?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.