•  

    Pojawił się kolejny wpis na naszym blogu (i film na kanale youtube) - tym razem dotyczący klasy Enum w Javie. Skierowany głównie do początkujących, ale może i bardziej doświadczone osoby znajdą jakąś użyteczną informację ;)

    Wpis na blogu: KLIK
    Film na YT: KLIK

    Nowe materiały pojawiają się u nas co dwa tygodnie, więc jeśli ktoś chciałby śledzić nasze kolejne wpisy i filmy, to polecam tag #devfoundry.

    Zapraszam do czytania i oglądania! ʕ•ᴥ•ʔ

    #programowanie #naukaprogramowania #java #it #programista #programista15k #devfoundry

    •  

      @devfoundry:
      Dam plusa i nie będę się czepiał głupot. Taki mam dziś dobry humor.

    •  

      @sorhu: W takim razie dziękuję szczególnie - czuję się wyróżniony : >

      +: sorhu
    •  

      @devfoundry: Piszecie:

      Zmienne w klasie Enum
      Ale nie zaprezentowaliście tam sposobu na zmianę tej wartości, co wydaje mi się konfliktuje odrobinę z kontekstem "zmiennej".

    •  

      @Wyrewolwerowanyrewolwer: Dzięki za feedback, dodałem taką informację do wpisu.

    •  

      @devfoundry Jako początkujący, jeszcze nie praktykujący javoviec z ciekawością zapoznam się z twoim blogiem. Uczę się Javy i mam już dość czytania przykładów z kotkami i pieskami.

    •  

      @vincentooo: Dzięki. Zgadzam się, że często przykłady opierają się na klasach typu Animal albo Employee. To na pewno jest dobre, żeby wyjaśnić jakiś koncept, ale z drugiej strony przydają się też przykłady nieco bliższe rzeczywistej pracy. Bo później ktoś może mieć problem z klasami typu harmonogram, converter czy jeszcze bardziej abstrakcyjnymi koncepcjami.

    •  

      @devfoundry w pełni się zgadzam, sam to widzę po sobie gdy siadam do jakichś swoich małych projektów. Zawsze pomaga po prostu przeczytanie kilku różnych artykułów, które traktują temat w różny sposób.

    •  

      @devfoundry: Trochę to chaotycznie napisane. Pierwszy raz spotykam się też z taką konwencją nazewniczą. Poza tym całkiem ładny przegląd w zasadzie wszystkich kwestii związanych z javowym enumem.

      Jeśli targetem są początkujący to brakło informacji o tym:
      - kiedy średnik po wartościach typu wyliczeniowego jest wymagany,
      - jaka musi być kolejności definiowania poszczególnych elementów enuma (wartości typu wyliczeniowego muszą być pierwsze, potem reszta),
      - kiedy się stosuje enuma a kiedy nie,
      - przykładu ze switch

      Przy EnumSet obowiązkowo trzeba wspomnieć o tym, że pozwala zastąpić pola bitowe a przy definiowaniu modyfikowalnego pola w enumie, że to zła praktyka.

    •  

      @63274682374: "Trochę to chaotycznie napisane. Pierwszy raz spotykam się też z taką konwencją nazewniczą."
      Mógłbyś rozwinąć co masz na myśli? Bo wydawało mi się, że wpis został całkiem logicznie ułożony: od najprostszego przykładu, rozwijając go do najbardziej rozbudowanej formy, pokazując po kolei wszystkie możliwości enumów.

    •  

      Jeśli chodzi o konwencję nazewniczą to moje wątpliwości budzą sformułowania:

      ...Każda klasa typu Enum będzie niejawnie rozszerzała klasę Enum...
      Propronuję: Każdy enum będzie niejawnie rozszerzał klasę Enum...

      ...klasy typu Enum...
      (w wielu miejscach)
      To w sumie masło maślane. Lepiej na enuma mówić enum lub typ wyliczeniowy a na Enum<T> klasa Enum. Klasa i typ to w zasadzie jedno i to samo np. zmienna typu Integer, zmienna klasy Integer.

      ...Wykonuje się to poprzez podwójny znak równości:..
      Operator porównania.

      Do naszego prostego enuma spróbujemy teraz dodać jakąś zmienną,... dodaliśmy pole prywatne typu String,
      Pole i zmienna to nie to samo

      Jak widać, musimy tutaj określić typ enuma z rozszerzeniem .class
      Przekazać do metody obiekt TicketType.class. '.class' to nie rozszerzenie

      Jeśli chodzi o chaos to:
      - informacje o tym, że enum dziedziczy niejawnie z Enum<T> dałbym w podrozdziale po opisaniu przykładów z konstruktorem, metodami i polami itd a nie w drugim podrozdziale. Jest to w sumie szczegół implementacyjny.
      - tak samo enum jako singleton
      - w podrozdziale "Zmienne w klasie Enum" dodałeś pole i metody do przykładowego enuma (nawet ją wywołujesz) a dopiero w kolejnym podrozdziale opisujesz dodawanie metod - na o wiele gorszym przykładzie.
      - powtórzenia np. o tym że konstruktor nie może być public ani protected,

      Niedopowiedzenia:

      metoda clone jest typu final, aby nikt nie mógł sklonować danej instancji enuma,
      Metoda jest final, żeby nie można było jej nadpisać. Domyślna implementacja rzuca wyjątek i dopiero połączenie tych dwóch elementów sprawia, że klonowanie nie jest możliwe.

      pokaż spoiler W przypadku enuma jest to troszeczkę bardziej skomplikowane #pdk


      Ze względu na swoje ograniczenia, klasy typu Enum mogą w zasadzie jedynie implementować inne interfejsy.
      To jest raczej ograniczenie języka (brak wielodziedziczenia)

      Jeszcze dla początkujących brakuje informacji o valueOf() i toString()

    •  

      Komentarz usunięty przez autora

    •  

      @63274682374: Dzięki za poświęcenie czasu oraz cenne uwagi. Kilka z nich na pewno jest wartych rozważenia i wprowadzę je do wpisu.
      Natomiast jeśli zakładałbym wpis tak szczegółowy ze sterylną terminologią, to myślę, że źle by się to czytało i wpis miałby jeszcze z 200% swojej obecnej objętości, a wtedy nie wiadomo czy ktokolwiek uznałby to za satysfakcjonującą lekturę. To nie ma być dokumentacja języka, bo ta dostępna jest na oficjalnej stronie Oracle.

      Ale to moje prywatne zdanie. Rozumiem, że masz inne i szanuję to.

Gorące dyskusje ostatnie 12h

  • avatar

    Bynajmniej dziecią dali

    #polska #pis #polityka

    odpowiedzi (57)

  • avatar

    Zaburzenia psychiczne.
    Widziałem wiele ciekawych sytuacji. Jedno z wezwań brzmiało: bije głową w chodnik. Na miejscu okazało się, że pacjentowi wydaje się, że radio mu gra w głowie i waląc głową w chodnik chciał je wyłączyć. Zabrany do szpitala.

    Kolejne wezwanie dotyczyło kobiety o dziwnym zachowaniu. Wchodzimy do mieszkania, a babka myje podłogę w łazience. WTF? Co my tu robimy? A mąż mówi, że ona tak od 3 dób non stop myje łazienkę. Zostawiona w domu.

    Wezwanie do TVN. Przyszedł gość i mówi na recepcji, że jest z Ewą Drzyzgą umówiony. Pokazywał nawet sms od niej. Ochrona nas wezwała, bo gość był dziwny, a pani Ewy nawet nie było w budynku. Sprawdzam telefon, a tam faktycznie sms-y od Drzyzgi. Tak były podpisane. Normalna korespondencja dwóch osób. Tylko, że sms przychodzące były wysyłane z bramki internetowej. Zabrany do szpitala.

    Inne wezwanie. Policja na miejscu. Na ulicy. Facet zadzwonił, że jest z wywiadu i został zdemaskowany i potrzebuję pomocy. Przyjeżdżamy, a gość opowiada bardzo logiczną historię o tym, że ścigają go wywiady innych państw, że jest w dużym niebezpieczeństwie. I żeby go gdzieś ukryć. Ukryliśmy go w szpitalu psychiatrycznym. Zabrany do szpitala.

    Często zdarzają się wezwania do kościołów lub w ich okolice. Raz zabraliśmy faceta, co ponad dobę klęczał i modlił się na ulicy obok kościoła. Innym razem starszą babkę, co w kaplicy w której była całodobowa adoracja sakramentu, spędziła prawie dwie doby.

    Albo facet, który ukręcił łeb kotu, bo go coś w głowie mu kazało to zrobić.

    Niby śmieszne ale każdy z tych przykładów to ludzka tragedia. Dla pacjenta i rodziny.

    #wejsciesilowe #999 #ratownikmedyczny
    pokaż całość

    odpowiedzi (54)

  • avatar

    Takie coś sobie zamierzam kupić i pójść do ziomka na ślub dla beki. Co sądzicie? Czy trochę przesada?

    #modameska #kiciochpyta

    odpowiedzi (85)