Tygodniowe zadanie
Nadszedł czas na wyznaczenie Ci poważnego zadania na sam koniec drugiego tygodnia.
Po ukończeniu dwóch pierwszych tygodni – gdzie poznałeś podstawy Javy oraz programowania obiektowego nadszedł czas na konkretne zadanie. Zadanie jest ściśle związane z tworzoną aplikacją podczas kursu – z którą właśnie ruszamy tym zadaniem.
Szybkie przypomnienie
W zerowym tygodniu kursu opisywałem trochę aplikację, którą będziemy tworzyć. Ostatecznie padło na aplikację do zarządzania sklepem odzieżowo – obuwniczym. 😉
Będziemy w niej przechowywać informację o aktualnie dostępnych produktach i zapewnimy podstawowe operacje na produktach – na początku z poziomu konsoli, zaś celem jest zapewnie interfejsu graficznego przy użyciu JavyFx.
Cel
Twoim zadaniem będzie stworzenie czterech klas – tzw. modeli, czyli klas, które będą przechowywać informację o konkretnym obiekcie.
1. Klasa User:
- id
- login
- password
2. Klasa Product:
- id
- productName
- price
- weight
- color (String)
- productCount
3. Klasa Boots – dziedzicząca po Product:
- size (liczba całkowita)
- isNaturalSkin (boolean)
4. Klasa Cloth – dziedzicząca po Product:
- size (String)
- material (String)
Chciałbym, abym mógł dostać się do każdej zmiennej w klasie, ale żebym mógł modyfikować tylko następujące pola:
- Cenę produktu
- Ilość produktów
Wskazówka – Praca z Gitem
Jeszcze nie pokazywałem Ci jak pracuję z Gitem, dlatego dam Ci teraz kilka wskazówke, abyś automatycznie mógł przenosić swoje zmiany na zdalne repozytorium.
Na początek powinieneś mieć stworzone repozytorium w projekcie Javy w ten sposób.
Po każdej stworzonej klasie możesz otworzyć konsolę ALT + F12 i wpisać tam dwie komendy:
git add *
Komenda add * doda wszystkie zmiany do gita
git commit -m "Wiadomość commita"
Przy użyciu commit zostanie stworzony commit z daną wiadomością np. “Create User Entity” wraz z zmianami, które zostały odnotowane przy użyciu git add *.
Gdy wykonasz całe zadanie możesz wypchnąć swoje zmiany na zdalne repozytorium przy użyciu:
git push origin master
Po przejściu autoryzacji zmiany zostaną wysłane na Github. 😉
Podsumowanie
W razie problemów pamiętaj, że zawsze możesz napisać komentarz pod tą lekcją, napisać e-maila na maniaq@1024kb.pl oraz zapytać na grupie Facebookowej. 😉
Oczywiście na poczatku trzeciego tygodnia omówię jak wykonałem swoje zadanie, aby wytłumaczyć Ci jak ominąć każdą napotkaną przeszkodę – choć mam nadzieję, że ich nie napotkasz. 😀
Zadanie zostało już wykonane przeze mnie i możesz je podejrzeć tutaj.
Na koniec mam do Ciebie jedną prośbę – w komentarzu zostaw link do swojego repozytorium aplikacji – chciałbym czasami zerknąć na Twój kod i ewentualnie dodać krótki komentarz. 😉
Skoro nikt się nie kwapi, to ja zostawię pod ocenę tego co zrobiłem: https://github.com/PawelDebinski/project_1024kbpl.git .
Mam kilka uwag:
– sety w klasie User są niepotrzebne, nie oczekiwałem ich. Przy udostepnieniu getów i setów równie dobrze mógłbyś zmienić pola z prywatnych na publiczne 😉
– w klasie User udostępniasz konstruktor bezparametrowy, a w nim nie inicjalizujesz pól – później przez pomyłkę dostając się do pola dostaniesz NullPointerException – aby tego uniknąć usunałbym w ogóle konstruktor bezparametrowy.
– w klasie Boots/Cloth usuń konstruktor z dwoma parametrami – jest on nam nie potrzebny, nie mamy wtedy możliwości inicjalizowania pól z klasy Product
ok, poprawione, dzięki 🙂
https://github.com/SokolX/Management/tree/master/out/production/Management/pl/sokolx
Przejrzałem Twój kod i wydaję się być wszystko w porządku. 😉
https://github.com/xxy-xxx/ZadanieDomowe/tree/master/src/tydzien2/zadanieDomowe
Pozdro 😉
Cześć, przejrzałem Twój kod i mam dwie uwagi:
– na początek polecam Ci przenieść ten kod do oddzielnego repo, te zadania są inne od zadań na koniec lekcji. Z tych zadań oraz kodu, który napiszemy podczas lekcji stworzymy aplikację 😉
– żadna klasa nie ma metody toString
Tak to wszystko w porządku, możesz spróbować wykorzystać wzorzec Projektowy Builder: https://1024kb.pl/programowanie/java/wzorce-projektowe-java-builder/
Jednak będzie on trochę inaczej wyglądał dla klas dziedziczących, jednak warto spróbować. 😉
Nie za bardzo rozumiem tego, jak przesłać pliki z projektu z Inteli na GitHub? Zrobiłem wszystko wg. instrukcji, i przesłałem pliki na GitHub poprzez upload files. A ma to być wysłane z poziomu Inteli? Bo nie rozumiem tego? i na czym polega wprowadzanie zmian? Na GitHub są wysyłane zmiany w postaci pliku poprzez push? Nie czaje…
A mój GitHub https://github.com/Poul12/ProjectStore
Jeżeli nie masz utworzonego jeszcze repozytorium lokalne w folderze z projektem Javy to wpisz w konsoli:
“git init .” – z kropką na końcu, stworzy ono repo w tym samym katalogu.
Później wpisz komendę:
“git add *” – z gwiazdką na końcu, doda on wszystkie zmiany do repo
“git commi -m “init commit” – wszystkie dodane zmiany zostaną zapamiętane jako commit
Jeśli chcesz wypchnąć wszystkie swoje zmiany – czyli wszystkie swoje commity to musisz najpierw dodać adres zdalnego repozytorium:
git remote add [jakas-nazwa] [link do repo] np. git remote add origin https://github.com/1024kb-pl/KJOP_Management
Następnie możesz wysłać zmiany na to repo przy użyciu:
git push origin master – gdzie origin oznacza nazwę repo, a master główną gałąź repozytorium.
Brakowało tej kropki na końcu git init aby utworzyć repo lokalnie, ale po wpisaniu git push origin master dostaje
! [rejected] master -> master (fetch first)
error: failed to push some refs to ‘https://github.com/Poul12/myRepository’
Widzę, że 7 dni temu wykonałeś pierwszego pusha, który dodał tylko jeden plik.
Otwórz swój projekt i konsolę w IntelliJ i wpisz poniższe komendy:
git add *
git commit -m “Init Commit”
git push –force origin master
Zrobienie push –force spowoduje, że repozytorium zdalne zostanie zastąpione twoim repozytorium lokalnym. Jednak używać –force z głową, ponieważ zastępuje ono całe zdalne repozytorium. W tym przypadku, gdy nie mamy nic do stracenia możemy spushować forcem. 😉
Witam,
W załączaniu mój kawałek kodu z wykorzystaniem Buldiera : https://github.com/sparhowk/projectstore
Witam, po wakacjach nadrabiam zaległości :)!
https://github.com/zxcv22z/Code-cours
Pozdrawiam