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. 😉

Kamil Klimek

Od 2016 jestem programistą Java. Przez pierwsze 4 lata pracowałem jako Full Stack Java Developer. Później postanowiłem postawić nacisk na Javę, żeby jeszcze lepiej ją poznać.

Subscribe
Powiadom o
guest
13 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments
Paweł Dębiński
Paweł Dębiński
5 lat temu

Skoro nikt się nie kwapi, to ja zostawię pod ocenę tego co zrobiłem: https://github.com/PawelDebinski/project_1024kbpl.git .

Kamil Klimek
Kamil Klimek
5 lat temu

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

Paweł Dębiński
Paweł Dębiński
5 lat temu
Reply to  Kamil Klimek

ok, poprawione, dzięki 🙂

Kamil Klimek
Kamil Klimek
5 lat temu
Reply to  SO EK

Przejrzałem Twój kod i wydaję się być wszystko w porządku. 😉

Kamil Klimek
Kamil Klimek
5 lat temu
Reply to  ringu

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ć. 😉

Poul
Poul
5 lat temu

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

Kamil Klimek
Kamil Klimek
5 lat temu
Reply to  Poul

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.

Poul
Poul
5 lat temu
Reply to  Kamil Klimek

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’

Kamil Klimek
Kamil Klimek
5 lat temu
Reply to  Poul

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. 😉

sparhowk sparhowk
sparhowk sparhowk
5 lat temu

Witam,

W załączaniu mój kawałek kodu z wykorzystaniem Buldiera : https://github.com/sparhowk/projectstore

Maciej Wawrzyniak
Maciej Wawrzyniak
5 lat temu

Witam, po wakacjach nadrabiam zaległości :)!
https://github.com/zxcv22z/Code-cours
Pozdrawiam

13
0
Would love your thoughts, please comment.x