CodeGym /Blog Java /Random-PL /Stary poziom 06
John Squirrels
Poziom 41
San Francisco

Stary poziom 06

Opublikowano w grupie Random-PL

Mapa drogowa programisty Java

Mój przyjaciel zastanawiał się, dlaczego programiści są zawsze tacy szczęśliwi. Odpowiedź, z jaką przyszła, była prosta i zaskakująca: robią to, co lubią i zarabiają duże pieniądze. Witamy w świecie programistów. Stary poziom 06 - 1

Wynagrodzenie programisty

Chciałbym opowiedzieć o wynagrodzeniach programistów. Jak leży ziemia z pensjami, gdzie należy pracować, a gdzie nie. Jeśli nie jesteś programistą i próbujesz rozwiązać to samodzielnie, możesz otrzymać dość kontrowersyjne dane. Chodzi o to, że głównym czynnikiem wpływającym na wynagrodzenie dewelopera nie są kwalifikacje, ale miejsce zatrudnienia. Czasami, przy równym poziomie kwalifikacji, różnica między dobrym a złym miejscem pracy może być od 2 do 10 razy (!) W każdym momencie Twoja kwalifikacja jest stała. Nie możesz zdobyć dwukrotnie wyższych kwalifikacji w ciągu miesiąca i zarabiać dwa razy tyle. Ale możesz zmienić miejsce pracy w ciągu miesiąca i otrzymać dwukrotnie wyższą pensję. Raz w ciągu dwóch miesięcy moja pensja pomnożyła się trzykrotnie (!) – Niezapomniane doświadczenie. Sprawdźmy więc, które miejsce jest najlepsze.
  1. Czy główną działalnością firmy jest tworzenie oprogramowania
  2. Czy firma jest zorientowana na rynek globalny czy lokalny
  3. Gdzie znajduje się główne biuro: kraj rozwinięty lub kraj rozwijający się
Pamiętaj, że miasto, w którym pracujesz, nie ma znaczenia. To znaczy, jeśli zarabiasz pięć razy mniej w Barcelonie niż twój przyjaciel w Nowym Jorku, prawdopodobnie miały na to wpływ czynniki, o których wspomniałem. 

Konkretne liczby

Ponieważ wynagrodzenia są różne w różnych częściach świata, proponuję przyjąć jako punkt wyjścia pensję Senior Java Developer z 5-letnim doświadczeniem i nazwać ją „maksimum 5 lat”. Wszystkie poniższe wartości zostaną podane jako procent tej kwoty. Oto kilka przykładów pensji „maksymalnie 5 lat” w różnych miastach świata: Stary poziom 06 - 2Poniżej pokazano, ile może zarobić Java Senior Developer z 5-letnim doświadczeniem w zależności od firmy, w której pracuje: Stary poziom 06 - 3Stary poziom 06 - 4Co jest najdziwniejsze w obecnej sytuacji? Połowa wszystkich programistów pracuje w firmach 1 i 2 poziomu. Chcesz wiedzieć, jaki jest haczyk? Istnieją setki otwartych wakatów w firmach 3 i 4 poziomu. Firmy te są skłonne zaoferować wyższe wynagrodzenie i zwykle lepsze warunki pracy. Znam dwóch Java Juniorów, jeden z nich dostał pracę płacącą około 3% „maksymalnie 5 lat” (firma poziomu 1), a drugi dostał pracę za 30% „maksymalnie 5 lat” pensji (poziom 4). Dlaczego więc dostać mniej? Zapotrzebowanie na programistów przewyższa ofertę – nie idź tam, gdzie zarabia się mniej! Wniosek 1: Średnia pensja dla programistów Java (z jakimkolwiek doświadczeniem) to 40%-50% pensji „maksimum 5 lat”. Wniosek 2: Twoja średnia pensja za 5 lat wyniesie około 90%-110% pensji „maksymalnej 5 lat”, jeśli nie pracujesz w firmach 1 i 2 poziomu, a pracujesz w firmach 3 i 4 poziomu.

Co możesz osiągnąć, jeśli nie robisz głupich rzeczy

Jeśli już teraz zaczniesz pracować nad samokształceniem programistycznym, Twoje wynagrodzenie może wyglądać następująco: Stary poziom 06 - 5

Plan

0-3 miesiące (Student)

Mało wiesz o programowaniu. Być może uczyłeś się go w szkole lub na studiach na poziomie podstawowym. To, co musisz zrobić, to nauczyć się programować i uczyć się Javy. Twoim celem jest zdobycie pracy jako Java Junior Developer w firmie na poziomie 3 lub wyższym. Przez pierwsze trzy miesiące planu nie dostaniesz nic, bo dopiero uczysz się programować. Ale im wcześniej zaczniesz, tym lepiej. Najlepszy czas jest TERAZ. W przyszłości, kiedy masz rodzinę i mnóstwo pożyczek, przekwalifikowanie będzie znacznie trudniejsze. Aby naprawić swój błąd, będziesz musiał odłożyć pieniądze na co najmniej rok normalnego życia. Nie popełniaj głupich błędów.

3-15 miesięcy (Java Junior Developer)

Pracujesz już jako programista, a Twoje doświadczenie rośnie z każdym dniem. Nie relaksuj się. Masz wiele do zrobienia, zanim spoczniesz na wiosłach. To, co musisz zrobić , to studiować technologie, których będziesz potrzebować jako programista średniego poziomu. Co to jest? Świat nieustannie się zmienia. Załaduję cię radami, a życie wszystko zmieni. Znajdź kilka wolnych miejsc pracy w Internecie i zobacz, na co musisz aplikować. Koniecznie przeczytaj książkę Bruce’a Eckela „Thinking in Java”. Twoim celem w pierwszym roku pracy jako Java Junior Developer jest osiągnięcie poziomu Java Middle Developer. Nikt nie mówi, że będzie to łatwe, ale jest to możliwe dla osoby zorientowanej na cel. Podniesie twoją pensję w jednej chwili do 40% „5 lat maksimum” (50 000 $ dla SF i Londynu, 6 000 $ dla Bangalore).

2-letnie programowanie (Java Middle Developer, poziom 1)

W zeszłym roku wykonałeś dobrą robotę, a teraz jesteś Java Middle Developer. Możesz całkiem dobrze żyć, zarabiając 50% pensji starszego programisty Java. Dostajesz poważne zadania w pracy, a twoje doświadczenie znacznie rośnie. Poziom Java Senior Developer osiągniesz za dwa, trzy lata. Nie ma pośpiechu. I tak nie dostaniesz dużych podwyżek pensji. To, co musisz zrobić, to nauczyć się wzorców projektowych, przeczytać – McConnell's Code Complete. Doskonal jakość swojego kodu i umiejętności zespołowe. Stwórz zasadę czytania 1 książki o programowaniu każdego miesiąca. Wtedy za 4 lata będziesz o 50 książek mądrzejszy od całej reszty. Nie odkładaj tego na później: nie dostaniesz większej ilości wolnego czasu, poza tym najprawdopodobniej założysz rodzinę, a jeśli ją masz, to się powiększy. Twój celjest wybór kilku technologii, w których będzie się specjalizował jako Senior Java Developer. Nie możesz nauczyć się ich wszystkich, wiesz. A zostanie guru w jednej specjalizacji to zawsze dobra decyzja. Stary poziom 06 - 6

Programowanie w 3 lata (Java Middle Developer, poziom 2)

Jesteś teraz doświadczonym Middle Developerem i myślisz o zostaniu Senior Developerem. Jest przyjemny i prestiżowy. Twoja pensja przekracza 60% „5-letniego maksimum” (10 000 $ w Bangalore, 25 000 $ w Kijowie, 40 000 $ w Berlinie, 80 000 $ w Nowym Jorku). Od tego momentu wzrasta zapotrzebowanie na fachowców takich jak Ty. Zawsze będziesz w stanie znaleźć pracę w ciągu kilku dni i prawie nigdy nie będziesz zarabiać mniej niż teraz. Oczywiście, jeśli nie zrobisz nic głupiego. To, co musisz zrobić, tokontynuuj naukę wybranych technologii. Pracuj lepiej. Nie dla dobra pracodawcy, dla własnego dobra. Zgłoś się do udziału w projektach dotyczących obiecujących technologii (takich jak BigData, w chwili pisania tego artykułu). I tak będziesz spędzać w biurze 8 godzin dziennie, więc dlaczego nie zdobyć na to trochę więcej pieniędzy i, co o wiele ważniejsze, najcenniejsze doświadczenie, którego będziesz potrzebować w przyszłości. Twoim celem jest znalezienie nowej pracy. Zawsze można znaleźć dobry zespół. Zmierzysz się z nowymi projektami i technologiami. Nie musisz zakorzeniać się w swoim krześle. Jeśli nadal pracujesz w firmie trzeciego stopnia, pomyśl o zatrudnieniu w firmie czwartego poziomu.

Programowanie na 5 roku (Java Senior Developer, poziom 1

Jesteś teraz starszym programistą. Może nie zasłużyłeś na to i czujesz to. Mimo wszystko moje gratulacje. Nie ma znaczenia, czy jesteś godzien swojej pozycji teraz, ważne, że staniesz się jej godzien w przyszłości. Myślę, że zgodzisz się ze mną, że lepiej dostać dobrą pracę i po rozwinięciu się do wymaganego poziomu, to na odwrót. Mam nadzieję, że nie zapomniałeś o mojej radzie czytania jednej książki miesięcznie? Każdy student będzie teraz zazdrościł Twojej wiedzy i umiejętności. Mówiąc dokładniej, będzie się za nich modlił. Pomyśl tylko: masz poważne zarobki, blisko 90% pensji „maksymalnej 5 lat”. Pewnie jesteś jeszcze młody. Świat jest u twoich stóp. To, co musisz zrobić, todo ponownej oceny wybranych technologii. Być może trzeba zmienić specjalizację. Świat się zmienił, technologie się zmieniły, a ty zdobyłeś całkiem sporo wiedzy w ciągu ostatnich dwóch lat. To, co wybierzesz teraz, stanie się dla Ciebie nagłówkiem przez kilka następnych lat. Czas wybrać swoje ulubione technologie. Twoim celem jest wybór kierunku rozwoju. Jest ich wiele, nikt nie jest w stanie wymienić ich wszystkich, ale musisz dokonać wyboru już teraz. Jeśli dokonasz małej zmiany dzisiaj, w przyszłości otrzymasz dużą zmianę.

6 rok programowania (Java Senior Developer, poziom 2)

Zdecydowałeś o swojej przyszłości i pracujesz nad spełnieniem swojego marzenia. Dobrze obrany kierunek i chęć pójścia naprzód – a efekt nie będzie długi. Gratulacje. Cieszę się, że jest jeszcze jedna osoba, która spełniła swoje marzenie. Jest jedna głęboka prawda. Ludzie często przeceniają to, co mogą osiągnąć w ciągu roku, a nie doceniają tego, co mogą zrobić w pięć. Spójrz pięć lat wstecz. Tak jest. To, co musisz zrobić, to unikać niemądrych decyzji i nie być leniwym. Twoim celem jest wybranie kierunku i pójście do przodu. A może myślałeś, że to się tutaj kończy? Pamiętaj o maturze. To nie koniec, to dopiero początek.

Twoja przyszła specjalizacja

Stary poziom 06 - 7Możesz rozwijać się jako specjalista techniczny (branża wyższa), kierownictwo (branża niższa) lub jako zatrudniony profesjonalny/niezależny konsultant (branża średnia). Wszystko zależy od tego, co wolisz.

Kariera programisty Java

Zawód programisty różni się od innych. Nie trzeba być managerem, żeby dobrze zarabiać. Często zdarza się, że Senior Developer zarabia więcej niż jego szef-menedżer. Im więcej doświadczenia zdobędziesz, tym silniejsze będą Twoje relacje robocze z szefem, które zmienią się z „szefa-podwładnego” na „gwiazdę i kierownika”. Zepsuty wiedząc, że ich wartościowi programiści wybierają projekty i wakaty. Cieszmy się z tych naszych. Więc czego potrzebujesz, aby zostać tak cenionym i popularnym programistą na światową skalę? Musisz mieć ogromne doświadczenie w najbardziej poszukiwanych i nowych technologiach. Jak to osiągnąć? Zobacz poniżej. Stary poziom 06 - 8Gdy tylko dostaniesz pracę jako programista, zaczynają się z tobą dziać dwie rzeczy; jednak nie zawsze są one widoczne. 1. Zdobywasz doświadczenie w prawdziwych projektach i szybko się rozwijasz. Rok w tej pracy daje więcej doświadczenia niż 5 lat na studiach. Doświadczenie jest na tyle ważną kwestią, że w ogłoszeniach o pracę piszą „programista Java z 3-letnim doświadczeniem”. 2. Uczysz się nowych technologii 8 godzin dziennie i dobrze Ci za to płacą. Naprawdę nie można przecenić tego faktu. W niektórych przypadkach zdobyte umiejętności są tak cenne, że mogłeś pracować za darmo, aby je zdobyć lub nawet zapłacić. Jeśli mądrze wybierzesz projekty, nad którymi pracujesz, czeka Cię zawrotna kariera programisty. Więc… co wybrać? Często zdarza się, że nie wiesz, która technologia będzie przydatna, więc zaczynasz wybierać na „lubię i nie lubię” oraz „trendy w modzie”. Możesz mieć szczęście, a może nie. Lepiej więc wcześniej znać miejsce docelowe. Jest mnóstwo sposobów na ewolucję dla programistów, więc dla uproszczenia wybiorę kilka z nich i napiszę moją wizję sytuacji na przyszłość. Nie myśl, że ten wzór jest twardą linią; jest to raczej uproszczony pogląd na przedstawione rzeczy, aby było jasne.

Dwustuletni deweloper

Jeśli najbardziej lubisz programować, to jest to dla Ciebie: Senior Developer, następnie Tech Lead Developer i architekt. W ten sposób możesz pracować jako programista przez 50 lat i więcej. W większości przypadków wynagrodzenia Senior Developerów i Tech Lead Developerów przewyższają wynagrodzenia ich menedżerów. Więc zdobądź wartość swoich pieniędzy.

Menedżer. Masz szczęście, że nie jesteś taki jak inni

Przeszedłeś na stronę wroga. Żartuję. Jeśli odkryjesz w sobie świetne zdolności organizacyjne, to Twoimi drogami są: Team Lead, a następnie Project Manager. Da ci szansę zostania kierownikiem działu i otwarcia własnej firmy. Tego właśnie chcesz, prawda?

Dom jest tam gdzie serce

Stary poziom 06 - 9Jeśli już założyłeś rodzinę , to być może chcesz mieć miłe i spokojne życie w kraju o silnej ekonomii. Być może rozważasz przeprowadzkę do Kanady, USA, Szwajcarii, a nawet Australii. Masz doskonałe umiejętności i poszukiwany zawód. Nie będziesz musiał zaczynać od mycia naczyń. Zaczniesz jako Java Senior Developer. Pewnie dużo zarabia. Nieźle, co?

Zobacz Neapol i nie umieraj.

Nie masz jeszcze rodziny i kochasz podróżować . oDesk to wszystko. Znajdź klienta, zgódź się na stawkę 20-50 $ za godzinę, weź ze sobą laptopa i w drogę! Twoja pensja wystarczy na życie w dowolnym miejscu na świecie. Dlaczego nie zacząć od razu spełniać swoich marzeń?

Nie chcę programować, jestem dziewczyną..

Jeśli jesteś dziewczyną , być może będziesz musiała wziąć urlop macierzyński . To brzmi jak seksistowski żart i nim jest. Mimo wszystko jest w tym dużo zdrowego rozsądku. Najprawdopodobniej biorąc urlop macierzyński będziesz w stanie uzyskać dużo pieniędzy za urlop macierzyński (w krajach o wysokim poziomie ochrony socjalnej). Są firmy, które nic nie płacą i są takie, które płacą dobrze. Jedna z moich studentek dostała jedną trzecią rocznej pensji na urlopie macierzyńskim. A stało się to wiosną 2009 roku, podczas zwolnień pracowniczych. A za półtora roku możesz wrócić, będąc co najmniej Middle Developerem.

Lebwel 6

Stary poziom 06 - 10

1 Elly. Widoczność obiektu. zero

- Hej, Amigo! - Cześć, Elly! Opowiesz mi dziś coś ciekawego? - Dzisiaj opowiem o życiu obiektu . Po utworzeniu obiekt istnieje (żyje), dopóki przynajmniej jedna zmienna nie zapisze jego adresu (jest przynajmniej jedno odwołanie do obiektu). Jeśli nie ma już żadnych odniesień, obiekt umiera. Przykłady: Stary poziom 06 - 11- Obiekt «kot Tommy» istnieje tylko w jednym wierszu od momentu jego utworzenia. W następnym wierszu ta jedyna zmienna przechowująca swoje odwołanie jest ustawiana na wartość null, a wirtualna maszyna Java niszczy obiekt. - Obiekt «kot Sammy» po utworzeniu jest przechowywany w zmiennej cat1. A raczej cat1 przechowuje odniesienie do obiektu. Następnie kilka wierszy poniżej tego odniesienia jest kopiowanych do zmiennej cat2. Następnie referencja do innego obiektu jest przechowywana w cat1, a referencja do «cat Sammy» pozostaje tylko w cat2. Wreszcie, w ostatnim wierszu metody main, ostatnie odwołanie do obiektu jest ustawione na wartość null. - Obiekt «kot Maisy» istnieje tylko w jednym wierszu od momentu powstania. W następnym wierszu zmiennej cat2 przypisywana jest inna wartość, a odwołanie do „kota Maisy” zostaje utracone. Obiekt staje się nieosiągalny i jest uważany za śmieci (martwy). - Obiekt «kot Ginger» istnieje od momentu utworzenia do końca metody. W czasie wykonywania, gdy metoda zakończy działanie, zmienna cat1 zostanie zniszczona, a następnie obiekt «cat Ginger» również zostanie zniszczony. - Jest jasne. - Jeśli jednak utworzysz obiekt Cat w jakiejś metodzie i zapiszesz jego odniesienie w zmiennej klasy, wówczas Cat będzie istniał tak długo, jak długo istnieje odniesienie do niego z innego istniejącego obiektu. - Zwykle obiekt nie jest natychmiast niszczony. Wirtualna maszyna Java od czasu do czasu aktywuje wyrzucanie elementów bezużytecznych w celu usunięcia nieużywanych obiektów. Opowiem ci o tym później. - Jeśli chcesz, aby jakaś zmienna przestała przechowywać odwołanie do obiektu, możesz przypisać jej wartość pustą lub odwołanie do innego obiektu.

2 Profesor, Wywóz śmieci

Stary poziom 06 - 12- Hej, Amigo! Oto przydatny link na temat wyrzucania elementów bezużytecznych w Javie. To z pewnością nie są moje doskonałe wykłady, ale to wystarczy: Java Garbage Collection Basics

3 Elly, dokończ

- Witam ponownie! Teraz przedstawię krótkie wprowadzenie do metody finalize() . Ta metoda jest wywoływana przez wirtualną maszynę Java na obiekcie, zanim obiekt zostanie zniszczony. W rzeczywistości ta metoda jest przeciwieństwem konstruktora. W tej metodzie możliwe jest zwolnienie zasobów wykorzystywanych przez obiekt. - Klasa Object ma tę metodę, więc każda klasa ją ma ( wszystkie klasy w Javie są uważane za dziedziczone z klasy Object i zawierają kopię jej metod ). Jeśli napiszesz w swojej klasie metodę finalize() i zostanie ona wywołana przed zniszczeniem obiektów tej klasy. Przykład: Stary poziom 06 - 13- Rozumiem. - Ale jest jedna rzecz. Wirtualna maszyna Java sama decyduje, czy wywołać tę metodę, czy nie.Najczęściej obiekty utworzone w metodzie i zadeklarowane jako śmieci po jej wyjściu są niszczone natychmiastowo i bez wywołań metody finalize(). Metoda ta jest jeszcze jednym instrumentem kontroli nad alokacją zasobów zewnętrznych (poza JVM). Lepiej zwolnij wszystkie używane zasoby zewnętrzne i zresetuj zapisane odniesienia, gdy chcesz, aby obiekt został zniszczony. O zaletach tej metody i szczegółach jej działania opowiem w 10 lub 20 poziomach. Tymczasem warto wiedzieć dwie rzeczy: taka metoda istnieje i ( niespodzianka! ) nie zawsze jest wywoływana.

4 Elly, Żywotność obiektu

- Chcę też powiedzieć kilka ciekawych rzeczy na temat życia obiektu. W Javie bardzo trudno jest przypadkowo zgubić obiekt; jeśli masz odniesienie do obiektu, oznacza to, że obiekt z pewnością żyje. - Wewnątrz referencji obiektu przechowywana jest liczba – adres tego obiektu w pamięci. Nie możesz zmienić tej liczby, zwiększyć ani zmniejszyć. Nie możesz utworzyć odniesienia, gdy masz tylko adres w pamięci. Możesz tylko utworzyć nowy obiekt i przypisać jego odwołanie do zmiennej. Tylko w ten sposób można uzyskać nowe referencje. - Widzę. Oznacza to, że jeśli ustawię wartość null (wymażę) wszystkie odniesienia do obiektów, nigdy nie uzyskam odniesienia do obiektu i nie uzyskam do niego dostępu? - Tak. Ale często jest odwrotnie – jest zbyt wiele niewykorzystanych żywych obiektów.Większość programów tworzy dziesiątki obiektów i przechowuje je na różnych listach w czasie wykonywania, ale nigdy nie czyści tych list. - Przeważnie programiści oznaczają niechciane obiekty jako „usunięte”, to wszystko. Nikomu nie zależy na ich usunięciu z list. Tak więc duże programy Java mają tendencję do pęcznienia - coraz więcej nieużywanych obiektów pozostaje żywych w pamięci. - To wszystko. W przyszłości zawsze będę zwracał uwagę na nieużywane przedmioty i ich właściwą utylizację. - OK, dzięki. Wyjaśniłeś kilka spraw dotyczących referencji.

5 Diego, Zadania życia obiektu

- Hej, Amigo! Oto kilka zadań dla Ciebie:
Zadania
1 1. metoda finalize() klasy Cat
Napisz metodę chronioną void finalize() throws Throwable w klasie Cat
3 2. Klasy Kot i Pies oraz metoda finalize() dla każdej klasy
W każdej klasie Kot i Pies napisz metodę finalize() , która wyświetli na ekranie komunikat o zniszczeniu obiektu.
3 3. 50 000 obiektów klasy Kot i 50 000 obiektów klasy Pies
Utwórz w pętli 50 000 obiektów klasy Kot i 50 000 obiektów klasy Pies. (Maszyna wirtualna Java zniszczy nieużywane obiekty, więc metoda finalize() zostanie wywołana przynajmniej raz).
4 4. Licznik kota
W konstruktorze klasy Cat [public Cat()] zwiększ licznik kota (statyczna zmienna catCount tej samej klasy) o 1. W metodzie finalize() zmniejsz o 1.

6 Elly, Statyczne klasy i metody

- Oto nowy ciekawy temat. Chcę opowiedzieć o zmiennych statycznych i metodach. - Och, słyszałem już o zmiennych statycznych. Chyba też o metodach statycznych. Ale chciałbym poznać więcej szczegółów. - Deklarując zmienne w klasie, określamy, czy zmienne te są tworzone w pojedynczej współdzielonej instancji, czy też konieczne jest tworzenie ich kopii dla każdego obiektu. Domyślnie dla każdego obiektu tej klasy tworzona jest nowa kopia zmiennej klasy. Oto jak to wygląda: Stary poziom 06 - 14- Chociaż zmienne cat1.name i cat2.name są zadeklarowane w tej samej klasie - Cat, przechowują różne wartości, ponieważ są powiązane z różnymi obiektami. - Jest jasne. - Zmienna statyczna istnieje w pojedynczej instancji; musisz uzyskać do niego dostęp za pomocą nazwy klasy: Stary poziom 06 - 15- To też jasne. - Metody klas są również podzielone na dwie kategorie. Zwykłe metody są wywoływane na obiekcie i mają dostęp do danych tego obiektu. Metody statyczne nie mają takiego dostępu , ponieważ po prostu nie mają odniesienia do obiektu. Metody statyczne mają dostęp do zmiennej statycznej tej klasy lub innych metod statycznych. - Metody statyczne nie mają dostępu do metod niestatycznych ani zmiennych niestatycznych! - Dlaczego tak? - Każda zwykła zmienna klasowa jest umieszczona wewnątrz obiektu. Każda metoda może uzyskać dostęp do takiej zmiennej tylko wtedy, gdy ma odwołanie do tego obiektu. Takie odwołanie nie jest przekazywane do metody statycznej. - A co ze zwykłymi metodami? - Do zwykłej metody przekazywana jest ukryta referencja do obiektu, na który ta metoda jest wywoływana. Zmienna przechowująca to odwołanie nosi nazwę this . Dzięki temu metoda zawsze może pobrać dane własnego obiektu lub wywołać inną niestatyczną metodę tego samego obiektu. - Wartość null jest przekazywana do metody statycznej zamiast odwołania do obiektu. Dlatego metoda statyczna nie może uzyskać dostępu do niestatycznych zmiennych i metod — po prostu nie ma odniesienia do obiektu, z którym jest powiązana. - Widzę. - Tak działają zwykłe metody niestatyczne: Stary poziom 06 - 16- A tak działają metody statyczne: Stary poziom 06 - 17- Zmienna lub metoda jest statyczna, jeśli jest zadeklarowana ze słowem kluczowym static. - A jaki jest pożytek z takich metod, skoro są tak ograniczone? - Takie podejście ma też swoje zalety. - Po pierwsze, nie musisz przekazywać żadnych odwołań do obiektów, aby uzyskać dostęp do statycznych metod i zmiennych . - Po drugie, czasami konieczne jest, aby zmienna była jedyna w swoim rodzaju . Jak na przykład zmienna System.out (zmienna statyczna z klasy System). - I po trzecie, czasami konieczne jest wywołanie metody, zanim będzie można tworzyć jakiekolwiek obiekty . - Z jakiej okazji? - Jak myślisz, dlaczego metoda main jest zadeklarowana jako statyczna? Aby wywołać go natychmiast po załadowaniu klasy do pamięci, zanim możliwe będzie utworzenie jakichkolwiek obiektów.

7 Risha, Statyczne klasy i metody

- Oprócz metod statycznych istnieją również klasy statyczne . Rozważymy ten przypadek później, pokażę ci tylko przykład: Stary poziom 06 - 18- Możesz stworzyć tyle obiektów klasy Kot, ile chcesz. W przeciwieństwie do zmiennej statycznej, która istnieje w jednej instancji. - Głównym celem modyfikatora static przed deklaracją klasy jest utrzymanie relacji między klasą Cat a klasą StaticClassExample . Ogólnie rzecz biorąc, klasa Cat nie jest powiązana (nie ma ukrytych referencji) z obiektem StaticClassExample i nie ma dostępu do zwykłych (niestatycznych) zmiennych StaticClassExample. - Więc mogę tworzyć klasy wewnątrz innych klas? - Tak. Dzięki Javie jest to możliwe. Nie myśl o tym za dużo. Później wyjaśnię kilka innych rzeczy i wszystko stanie się trochę łatwiejsze. - Mam nadzieję.

8 Diego, Zadania z metody statycznej

- Hej, Amigo! Oto kilka interesujących zadań dotyczących metod statycznych:
Zadania
1 1. Klasa Cat i zmienna statyczna catCount
Napisz zmienną statyczną int catCount w klasie Cat. Utwórz konstruktor [ public Cat() ], w którym podaną zmienną należy zwiększyć o 1.
2 2. Metody statyczne: int getCatCount() oraz setCatCount(int)
Do klasy Cat dodajemy dwie metody statyczne: int getCatCount( ) oraz setCatCount(int) za pomocą których możemy uzyskać/zmienić liczbę kotów (zmienna catCount)
3 3. Klasa Util
Zaimplementuj metodę statyczną double getDistance(x1, y1, x2, y2) . Powinien obliczyć odległość między punktami. Użyj metody double Math.sqrt(double a), aby obliczyć pierwiastek kwadratowy z przekazanego parametru
4 4. Klasa ConsoleReader
Napisz klasę ConsoleReader, która będzie posiadała 4 statyczne metody:
- String readString() do odczytu napisów z klawiatury
- int readInt() do odczytu liczb z klawiatury
- double readDouble() do odczytu liczb ułamkowych z klawiatury
- void readLn () czekać na naciśnięcie enter [użyj readString()]
5 5. Klasa StringHelper
Napisz klasę StringHelper, która będzie miała 2 metody statyczne:
- String multiple(String s, int count) powinien zwrócić string s powtórzony razy.
- Funkcja String multiple(String s) powinna zwrócić ciąg s powtórzony 5 razy.

Przykład:
Amigo → AmigoAmigoAmigoAmigoAmigo

9 Profesor, zakres statyczny obiektu i czas życia

Stary poziom 06 - 19- To znowu ja. Niestety nie mogę dzisiaj podać żadnych linków. Gdzieś zaginęły te wspaniałe wykłady. Obawiam się, że dziś musisz radzić sobie sam. Ale lepiej słuchaj więcej Elly i Rishy, ​​zawsze mogą cię czegoś nauczyć. Spróbuj jednak tego: Cykl życia obiektu

10 lipca

- Hej, Amigo! Wykonałeś dzisiaj świetną robotę. Dlatego po prostu nie mogę dać ci więcej. Chodź, usiądź, zaczyna się przedstawienie:

11 kapitanów wiewiórek

- Cześć, żołnierzu! - Dzień dobry panu! - Mam dla ciebie wspaniałe wieści. Oto szybkie sprawdzenie, aby wzmocnić swoje umiejętności. Rób to codziennie, a szybko poprawisz swoje umiejętności. Zadania są specjalnie zaprojektowane do wykonywania w Intellij IDEA.
Dodatkowe zadania do wykonania w Intellij Idea
1 Klasa Cat i zmienna statyczna catCount
Napisz zmienną statyczną public int catCount w klasie Cat. Stwórz konstruktora [public Cat()]. Niech zmienna statyczna catCount zwiększa się o 1 za każdym razem, gdy tworzysz kota (nowy obiekt Cat). Utwórz 10 obiektów Kot i wyświetl wartość zmiennej catCount .
2 2. Statyczne koty
  1. Dodaj publiczną zmienną statyczną koty (ArrayList<Cat>) w klasie Cat.
  2. Za każdym razem, gdy tworzysz kota (nowy obiekt Kot), niech ten nowy kot zostanie dodany do zmiennej koty . Utwórz 10 obiektów Kot.
  3. Metoda printCats() powinna wyświetlić wszystkie koty. Musisz użyć zmiennej koty w metodzie.
Wskazówka:
Aby utworzyć zmienną koty , użyj linii kodu:
public static ArrayList<Cat> koty = new ArrayList<Cat>();
3 3. Przenieś jeden modyfikator statyczny
Przesuń jeden modyfikator statyczny, aby kod się skompilował.
4 4. Minimalna liczba statycznych słów kluczowych
Dodaj minimalną liczbę statycznych słów kluczowych, aby skompilować kod i pomyślnie ukończyć program.
5 5. Jakieś nowe pomysły? Pomyślmy...
  1. Napisz publiczną klasę statyczną Pomysł w klasie Rozwiązanie
  2. Napisz metodę public String getDescription() w klasie Idea, aby zwrócić dowolny niepusty komunikat
  3. W klasie Solution utwórz metodę statyczną public void printIdea(Idea idea) aby wyświetlić opis pomysłu - to właśnie zwraca metoda getDescription()
6 6. KissMyShinyMetalAss
Napisz klasę o nazwie KissMyShinyMetalAss. Utwórz obiekt tej klasy, a następnie wyświetl go na ekranie.
7 7. Nazwa trzech zmiennych statycznych
Zapisz 3 publiczne zmienne statyczne: String Solution.name , String Cat.name , String Dog.name
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION