dla Początkujących
6 godz. 26 min · JavaScript · Full-stack i Programowanie
Adam GospodarczykProgramowanie to szeroka dziedzina, która nieustannie się rozwija. Rozpoczynając naukę możemy opierać się głównie na wskazówkach bardziej doświadczonych osób, bądź autorach kursów i nauczycielach. W praktyce najważniejsze na początku jest dobre zrozumienie tego, czym jest programowanie, jakie możliwości daje oraz jakie możemy wybrać ścieżki rozwoju. W tym kursie spojrzymy na programowanie z szerokiej perspektywy, dając Ci solidne podstawy do dalszej nauki.
To kolejne trudne pytanie, na które nie ma jednoznacznej odpowiedzi. Dobra wiadomość jest taka że języki programowania, podobnie jak angielski, niemiecki czy hiszpański mają cechy wspólne. Nie oznacza to że nauka jednego, da Ci dostęp do wszystkich ale poznasz ogólne mechanizmy, które spotkasz w niemal wszystkich pozostałych technologiach. W tym kursie skupiamy się właśnie na takich obszarach, opierając przykłady o obecnie najpopularniejszy język jakim jest JavaScript.
Być może zastanawiasz się jak dokładnie wygląda praca programisty? Czym różni się front-end od back-endu i czy wysokie umiejętności analityczne są wymagane niezależnie od obszaru programowania, którym się zajmujemy? Dodatkowo samo zostanie programistą to tylko początek drogi. Możliwości jakie przed nami stoją nie tylko są ogromne, ale również nieustannie się rozwijają, stawiając przed nami nowe wyzwania.
Ten kurs podzielony jest na dwie części - teoretyczną, która przedstawi Ci szerokie spojrzenie na programowanie oraz praktyczną, w której samodzielnie będziesz w stanie przekonać się jak pisać programy z wykorzystaniem języka JavaScript - najpopularniejszego języka na świecie. To, że będziemy przerabiać przykłady w JavaScript, nie stanowi przeszkody a wręcz lepiej przygotuje Cię do pracy z innymi językami jak Python, C# czy C++ lub Kotlin. To wszystko ułatwi Ci podejmowanie decyzji dotyczących dalszej nauki i rozwoju jako programista.
W pierwszych lekcjach części praktycznej kursu dowiesz się jak skonfigurować środowisko pracy wraz z edytorem, w którym przyjdzie Ci pracować. Pomożemy Ci w dobraniu odpowiednich ustawień i wtyczek, które przyspieszą naukę i pomogą w lepszym zrozumieniu podstawowych koncepcji programistycznych. Krok po kroku dowiesz się jak przygotować środowisko i rozpocząć komfortową pracę.
Mimo, że będziemy pracować z JavaScript, posłuży nam on do przedstawienia najważniejszych koncepcji programowania w każdym innym języku. Nie będziemy uczyć się tworzenia stron i środowiska przeglądarki a jedynie przećwiczymy najważniejsze koncepcje języków programowania w środowisku konsolowym. Dzięki temu zdobyte umiejętności z łatwością przełożysz na inne języki jak Python, Java czy Swift, bo wszystkie posiadają identyczne konstrukcje, a poznać należy wyłącznie różnice.
OOP to jeden z najważniejszych paradygmatów programowania, który powinien poznać każdy aspirujący Programista. Dzięki temu będziesz mógł zdecydowanie lepiej zrozumieć możliwości i powiązania klas i obiektów, które tworzą programiści a także pisać kod, który jest prostszy i reużywalny. To koncepcja, którą także wyjaśnimy obrazowo w kursie. Oczywiście, poza teorią w kursie pokażemy Ci przykłady tworzenia funkcjonalnych klas w JavaScript.
Kolejną ważną koncepcją, którą musi znać każdy początkujący Programista jest praca z błędami - innymi słowy obsługa błędów lub debugowanie naszej aplikacji. To niezwykle ważne, bo oszczędzi Ci mnóstwa frustracji oraz wielu godzin rozpoznawania, co w kodzie nie działa poprawnie. Z kursu w praktyce dowiesz się, jak testować swoje aplikacje, łatwo wykrywać błędy i korzystać z narzędzi, które będą je dla nas wykrywać lub automatycznie poprawiać!
Ten kurs przygotowaliśmy tak, aby był fundamentem wiedzy o Programowaniu, którego używamy w wielu naszych ścieżkach na eduweb.pl. To znaczy, że kurs który masz przed sobą rozpoczyna ścieżkę Python, JavaScript, Ruby i wiele innych. Wiemy, że w sieci jest mnóstwo materiałów na temat podstaw programowania i chcieliśmy przygotować wyjątkowy kurs, który da Ci spokój w natłoku wielu informacji w sieci. Zaangażowaliśmy w to najlepszych autorów eduweb oraz naszym zdaniem jednych z najlepszych programistów w Polsce. To, co jest jednak najważniejsze - kurs omawia programowanie bardzo prostym językiem, dzięki czemu jest przystępny dla każdego!
Kurs przeznaczony jest dla osób początkujących, które stawiają swoje pierwsze kroki na scieżce programisty lub programistki. Jednak skorzystają z niego także te osoby, które myślą o nauce programowania w celu uzupełnienia innych umiejętności, na przykład internetowi przedsiębiorcy, freelancerzy, UI/UX i web designerzy. Jeżeli czujesz się zagubiony lub przytłoczony dużą ilością często sprzecznych informacji - ten materiał pozwoli Ci szerzej spojrzeć na programowanie. To z kolei przełoży się na lepsze decyzje, które będziesz podejmować w kontekście swojego rozwoju. W kursie znajdziesz wskazówki i porady dotyczące efektywnej nauki programowania, które pomogą Ci szybciej zdobyć nowe umiejętności i pracę w zawodzie. Najważniejszą z nich jest fakt, że programowanie to dynamicznie rozwijająca się dziedzina, która wymaga od Ciebie nieustannej nauki. Zatem wypracowanie odpowiednich nawyków i technik nauki jest niezwykle istotne, niezależnie od miejsca w którym aktualnie się znajdujesz.
W tej lekcji rozbudujemy przykład z lekcji
poprzedniej i dodamy sobie tutaj również zamówienie.
Będzie to przykład dużo bardziej skomplikowany,
przynajmniej na pierwszy rzut oka,
dlatego polecam Ci pisać ten kod razem ze mną abyś wszystko jak najlepiej zrozumiał.
Więc mamy nasz produkt, który pozwala nam opisać no właśnie produkt. Możemy utworzyć
nowy obiekt czyli tak zwaną nową instancje klasy Product, przekazać tytuł i cenę.
Co ważne możemy oczywiście utworzyć sobie kolejną książkę np.
nazwijmy tutaj stałą ebook i powiedzmy, że
będziemy mieli ebook Harry'ego Pottera, Harry Potter
i np. tutaj zrobiłem pauza e-book. Żeby było wiadome, że jest to ebook i niech to kosztuje powiedzmy
40 złotych. To jest właśnie zaleta klas, że tutaj mamy jakby pewnego rodzaju szablon i
możemy z tego szablonu tworzyć bardzo wiele różnych obiektów.
No i teraz jeżeli bym się na ebook odwołał,
ebook getPrice to nam to zwróci 40 a na book getPrice 49.99.
Więc mam nadzieję, że teraz to widzisz jak to dokładnie działa.
No i będziemy chcieli teraz sobie stworzyć jeszcze jedną klasę a będzie to zamówienie
i to zamówienie będzie mogło przechowywać produkty. Więc nazwę klase Order jak
zamówienie, będę chciał żeby ona również miała konstruktor, tutaj zrobię trochę miejsca
żebyśmy się skupili wyłącznie na tej klasie,
więc podobnie jak wcześniej będziemy mieli
metodę konstruktor, to znaczy, że przy tworzeniu nowego zamówienia chcę tam
przekazać numer tego zamówienia i datę tego zamówienia.
Będę chciał sobie to przypisać do wewnątrz jakby tego obiektu czyli będę chciał mieć
właściwość, którą nazwę tak samo jak parametr czyli this.nr,
to jest to co ktoś przekazał i this.date,
to też będzie to co ktoś przekazał. W razie czego zerknij do poprzedniej lekcji, to nie
musi się nazywać tak samo jak to. To jest tylko parametr a to jest właściwość, którą
tworzymy w tym momencie. Więc mamy już takie zamówienie,
no i teraz do tego zamówienia będę chciał móc dodawać produkty. Więc potrzebujemy
wewnątrz tego zamówienia mieć jakąś właściwość. Utworzymy ją w konstruktorze,
nazwiemy ją products i będzie to pusta tablica.
Zauważ, że nigdzie jej tutaj nie przekazuje bo wcale tego robić nie musimy. Na tym etapie
w konstruktorze mogę sobie utworzyć jakie właściwości chcę. Więc od razu będę
przekazywał numer i datę ale produktów już nie.
Zatem utwórzmy sobie pierwsze zamówienie tutaj, nazwiemy to order1 jak pierwsze
zamówienie, new Order czyli tworzy nowy obiekt tej klasy, edytor mi od razu
podpowiada, że parametry, które powinniśmy przekazać jest to numer i data. Więc przekażemy
numer zamówienia, przekażę string i powiem, że jest to zamówienie numer jeden po
przecinku przekaże datę. I teraz co ciekawe przekażemy sobie tutaj obiekt
daty, o tym Ci jeszcze nie mówiłem w tym kursie ale w języku JavaScript mamy coś
takiego jak tworzenie dat są to obiekty, które pozwalają nam manipulować datami.
Czyli tutaj mógłbym przekazać string i powiedzieć, że interesuje mnie data np.
2020-03-02.
Byłby to string, który byśmy tutaj wewnątrz zapisali pod date. Ale w języku JavaScript
mamy taką jakby klasę bo można w ten sposób na to patrzeć,
tutaj my utworzyliśmy klasę Product i Order
ale mamy również takie wbudowane klasy, takie konstruktory
i możemy skorzystać z new Date. To jest zbudowane w języku JavaScript.
Zauważ, że my nigdzie tego nie stworzyliśmy i tu możemy podać taką datę.
To sprawi, że z new Date czyli z takiej
klasy zostanie utworzony obiekt, zwrócony i ten obiekt zostanie podstawiony pod date,
bo pod numer przekażemy string jeden a drugi parametr czyli zwrócony z Date obiekt
zostanie podstawiony pod date i zapisany wewnątrz naszego obiektu, tutaj
kiedy ten obiekt będzie tworzony. Co można z tą datą robić to Ci pokaże za moment.
Ok. Zapisze to sobie i teraz już mamy
takie nowe zamówienie, które ma jakiś numer ma datę i ma produkty
i jest to pusta tablica. Teraz do tego
zamówienia będę chciał móc dodawać produkty.
Więc jak mamy utworzone zamówienie i mamy utworzone dwa produkty to wyobraź sobie, że
chciałbym powiedzieć order1.addProducts czyli dodaj produkty,
chciałbym mieć taką metodę, której przekażę
tablicę, więc stworzę tutaj tablicę i do tej tablicy będę chciał wstawić naszą
książkę czyli book i ebook. Będę tutaj chciał wstawić po prostu dwa obiekty.
Podświetla nam tutaj bo nie mamy takiej metody więc teraz ją po prostu możemy
dodać. A więc chcemy żeby zamówienie miało metodę addProducts, która będzie przyjmować
parametr, który możemy nazwać dowolnie nazwiemy go products,
w ten sposób i będziemy chcieli żeby ta
metoda do tej tablicy products dodawała nam te właśnie produkty, które przekazaliśmy.
Więc moglibyśmy powiedzieć this.products,
to nam się odwoła do tej na początku utworzonej pustej tablicy,
moglibyśmy powiedzieć push, ale jeżeli tutaj zrobię push(products) to do tej tablicy
wcisnąć kolejną tablicę, którą tu przekazaliśmy. Więc chcemy zrobić rzecz
inną, mianowicie chcemy powiedzieć this.products to jest ta pusta tablica concat,
to jest taka metoda, która pozwala nam łączyć tablice więc jeżeli tu będzie 5
elementów i chcemy to połączyć z innymi pięcioma to łącznie będzie 10. I będę
chciał to połączyć z przekazanymi produktami ale samo sobie to jeszcze nie
zadziała bo cała ta metoda concat zwraca nową tablicę więc chcemy nadpisać this.products
właśnie tym co zostanie tu zwrócone. Więc zobaczymy.
Utworzyliśmy nowe zamówienie, przekazaliśmy mu numer i datę.
Na tym etapie wywołał się konstruktor,
przepisał numer i datę oraz pustą tablicę products.
Później utworzyliśmy dwa produkty zupełnie innej klasy a następnie na order 1 czyli
właśnie na tej klasie order skorzystaliśmy z metody addProducts, ona jest tutaj,
przekazaliśmy tam tablicę, w której są dwa produkty, ona wpadła pod
zmienną tutaj taką pod parametr products i powiedzieliśmy, że chcemy już istniejącą
tablicę products połączyć z tą, którą przekazaliśmy.
Dzięki temu możemy ponownie wywołać addProducts, dodać kolejne dwa produkty itd.
Natomiast tutaj może mylące być to, że tutaj nasz product, tu products
i tu ale zauważ, że this.products odwołuje się do tej właściwości,
natomiast samo products odwołuje się do
tego co przekazaliśmy. Więc możesz to nazwać inaczej,
wtedy podstawić tutaj również inną nazwę.
Ok. Teraz jeżeli zapisze to po wykonaniu się tej linijki już mamy wewnątrz tego można
powiedzieć obiektu order mamy zapisane dwa produkty.
No i teraz co będziemy chcieli zrobić? Skoro mamy zamówienie to fajnie by było
zapytać ile to zamówienie jest warte czyli jaka jest łączna wartość zamówienia.
Więc jeżeli daliśmy jeden produkt Władca Pierścieni i Harry Potter to tutaj jest
cena pierwszego i drugiego, trzeba będzie dodać te dwie ceny.
Teraz jak to zrobić? Dodamy sobie i zrobię tutaj znowu trochę miejsca żeby się skupić tylko
na klasie order, dodamy sobie metodę, którą nazwiemy getTotal.
Chcemy żeby ona nam zwróciła łączną sumę zamówienia czyli żeby zsumowała ceny
wszystkich produktów. Jak to będziemy mogli zrobić skoro po dodaniu produktów, po this.products
mamy tablicę, w której są produkty to można tutaj zrobić pętlę for, którą już
znasz i przeiterować po wszystkich elementach tej tablicy.
W naszym przypadku tam będą dwa elementy. Więc możemy na początku utworzyć zmienną
total, która będzie miała wartość 0 i do niej będziemy dodawać.
Teraz stworzymy tablicę tak jak już to robiliśmy wcześniej, nie
tablicę tylko pętlę, przepraszam, więc będziemy chcieli przeiterować przez
wszystkie te elementy a więc odwołanie się do
this.products.length
tak jak robiliśmy to do tej pory, length zwróci nam długość tablicy products,
po dodaniu tych produktów będą dwa elementy i następnie zrobimy i++
I na tym etapie jak się odwołam do this.products
to się odwołuje do tablicy, jak podam i
to się odwołuje do konkretnego indeksu czyli tu będę miał produkt pierwszy potem
produkt drugi. I teraz kluczową rzeczą jest żeby zrozumieć, że
skoro w tej tablicy products są produkty, które przekazaliśmy a te
produkty czyli book i ebook, zobacz przekazane tutaj to są obiekty utworzone z kasy
products, to taki obiekt ma metodę getPrice, którą dostaliśmy.
I to jest super ważne, że teraz this.products[i] z tej tablicy mi można
powiedzieć wyciągnie ten pierwszy produkt i na nim mam dostęp do metody getPrice.
To jest bardzo, bardzo ważne i to mi zwróci cenę tego produktu. Więc tą cenę będę
chciał dodać do zmiennej total. A więc napiszemy total
plus równa się cena tego produktu.
Potem pętla przejdzie do kolejnej iteracji i z tej tablicy products wyciągnie
sobie drugi produkt u nas to będzie e-book,
będzie to obiekt i na tym obiekcie wywoła nową metodę getPrice, która zwróci 40.
A więc jak ta pętla się zakończy to w zmiennej total
jeżeli mieliśmy jakiekolwiek produkty już nie będzie zero ale będzie właśnie
całkowita wartość tego zamówienia. Więc możemy wtedy powiedzieć return
czyli zwróci total.
Mam nadzieję, że tutaj jest to dla Ciebie jasne. Nie ma tutaj zbyt wiele kodu ale trzeba
zrozumieć skąd te wszystkie rzeczy się biorą.
I teraz jeżeli sobie już daliśmy te produkty do zamówienia to możemy w konsoli
wyświetlić łączną wartość zamówienia a więc powiedzieć order1.getTotal
to wywoła metodę, zobaczmy tutaj jakiś błąd nam się pojawił.
Ok. zdebugujmy tzn.
znajdźmy problem dlaczego tutaj
nie został dla nas zwrócony odpowiedni produkt.
Ok oczywiście tutaj pewnie to zauważyłeś
zrobiłem błąd bo tu powinien być jeszcze warunek, że i jest mniejsze
od this.products.length.
Teraz nam to powinno zadziałać.
Zgadza się i getTotal zwróciło nam taką oto wartość.
Można by było zadbać jeszcze o to żeby tę wartość
odpowiednio sformatować i można to zrobić tak, że jeżeli total przechowuje number a
wiemy, że tam jest albo zero albo jakaś inna wartość ale jest to typ number to w
języku JavaScript możemy na takim typie number odwołać się do jego metody toFixed2
czyli, że chcemy to sformować już jako string,
całe to już nie zwróci nam liczby ale zwróci nam string, który będzie miał dwa
miejsca po przecinku. Jeżeli zapisze zauważ, że wygląda to w taki sposób. A więc w tej
metodzie nie tylko mogliśmy wyliczyć łączną wartość zamówienia ale także
mogliśmy ją fajnie sformatować i teraz patrząc z punktu widzenia tylko tego kodu
tworzymy zamówienie, mówimy, że jest to zamówienie o numerze 1, który ma taką i
taką datę, potem sobie tworzymy produkty, dodajemy je do tego zamówienia i w
kolejnej linijce możemy zapytać jaka jest łączna wartość tego zamówienia.
Zauważ jak to super wszystko wygląda
i jak łatwo się z tym pracuje kiedy stworzymy sobie odpowiednie klasy.
Ok, żeby ten przykład był jeszcze bardziej pełny,
mam nadzieję, że jest to dla Ciebie
interesujące to będę chciał tutaj dodać jeszcze dwie metody.
Będzie to przede wszystkim metoda, która
nam wyświetli po prostu podsumowanie zamówienia.
Więc będę chciał nazwać tę metodę np.
getInfo
i chciałbym żeby ona nam zwróciła taki string
gdzie będzie po prostu napisane zamówienie, numer, data itd.
Więc na początku stworzę sobie tutaj zmienną, którą nazwę output i skorzystamy
z takiego zapisu stringu w języku JavaScript, który pozwoli nam tutaj
wstawiać sobie łatwo różne rzeczy i będę chciał napisać coś takiego, zamówienie
numer, dwukropek i będę chciał tutaj podstawić numer tego zamówienia. Skąd to weźmiemy.
Przypomnę Ci, że pod this.nr zapisaliśmy
sobie właśnie numer tego zamówienia. I w takich stringach o czym już mówiłem w tym
kursie można skorzystać z dolara i takich nawiasów i wtedy odwoływać się do różnych
zmiennych. Więc możemy napisać this.nr i to nam podstawi po prostu numer tego zamówienia.
Teraz będę chciał zwrócić return output i będziemy chcieli tutaj sobie po prawej stronie
wyczyścić to żeby mieć czysto i następnie zamiast zrobić getTotal
to zrobimy sobie getInfo, zapisze, zauważ, że zwróciło nam to zamówienie numer jeden.
Gdybym tutaj podał nazwę 100 czy numer 100 będzie to zamówienie numer 100.
W ten sposób. I teraz chcę tutaj dodać jeszcze kolejne rzeczy takie jak np.
data, więc postawimy sobie Enter.
I będę chciał tutaj powiedzieć Data i będę chciał sformatować datę ale do tego
będziemy potrzebowali osobnej metody, którą pokaże Ci jak teraz stworzyć.
Przypomnę tylko, że tworząc zamówienie przekazaliśmy tutaj datę w taki sposób czyli
skorzystaliśmy z takiej klasy, która w języku JavaScript jest dostępna.
To utworzyło nowy obiekt i zapisało go tutaj pod this.date. I teraz taki obiekt ma
różne metody, które pozwalają nam pobrać rok,
my tutaj podaliśmy to w formie takiego
stringu ale dzięki temu będziemy mogli pobrać rok, miesiąc, dzień itd.
Więc będę chciał teraz utworzyć tutaj metodę, którą nazwiemy getDate.
Dlaczego ją tworzę tutaj.
No właśnie po to żebyśmy tu nie mieli za
dużo kodu. Do tej metody się będzie można odwołać.
I chciałbym żeby ona nam to wszystko fajnie sformatowała.
Więc będę chciał napisać tak const day czyli dzień, odwołam się do this.date,
to się odwoła tak naprawdę do tego obiektu, który tu przekazaliśmy.
Skoro jest to obiekt tak jak mówiłem, który
ma różne metody zapisane tu to musisz mi uwierzyć na słowo, że ma taką
metodę jak getDay. To nam zwraca dzień a w zasadzie getDate tutaj musi być,
to nam zwraca dzień miesiąca czyli jeżeli my tutaj
podaliśmy zero drugi to powinnam zwrócić dwa.
Teraz stworzę sobie stałą, którą nazwę month
czyli miesiąc, odwołam się znowu do tego obiektu date i powiem getMonth.
Tylko, że tutaj nam to zwraca miesiące w
ten sposób, że indeksuje od zera a więc w przypadku stycznia będzie to zero a nie 1
dlatego do tego chcemy dodać jeszcze
jedynkę. I const year czyli rok napiszemy this.date.getFullYear.
To nam zwróci w tym przypadku 2020.
I teraz skoro mamy to już wszystko w zmiennych to możemy zwrócić fajnie
sformatowany string, w który to po prostu podstawimy. Za pomocą
znowu takiego zapisu podstawimy dzień potem chce postawić kropkę,
potem tutaj musi to być w środku, powiemy miesiąc,
postawimy kropkę i potem powiemy year.
Zatem stworzyliśmy na naszym zamówieniu
metodę getDate, która nam ładnie sformatowaną datę po prostu zwróci.
Więc teraz możemy w innej metodzie czyli w getInfo z niej skorzystać.
Mówiąc po prostu w takim zapisie this.getDate.
Zapiszmy, zobaczmy, jak najbardziej to działa.
Tylko że tutaj został dodany jeszcze
takie białe znaki to wynika z tego, że tutaj one są tak naprawdę więc
musielibyśmy to zapisać tak, zobacz i teraz nasza metoda getInfo już
bardzo ładnie nam pokazuje zamówienie numer 100 data,
ona tak wygląda.
Gdybyśmy tutaj chcieli jeszcze dodać, że to jest 02 03 to należałoby sprawdzić jeżeli dzień
jest mniejszy od dziesięciu to dodaj na początku jeszcze zero.
Ale tego już teraz robić nie będziemy.
Ok. No i ostatnia rzecz, którą chciałem zrobić w naszej metodzie to żeby wyświetlała
oprócz numeru zamówienia i daty również kupione produkty.
Dlatego chciałbym tutaj napisać produkty, znowu nie robię tutaj tabulatora bo on
będzie ujęty później w tym wyniku więc musimy to tak zapisać,
produkty, zrobimy tutaj Enter i będziemy chcieli
do tego ciągu output dodać nazwy wszystkich produktów. Więc przeiterujemy sobie
dokładnie tak jak wcześniej więc możemy
skopiować po wszystkich produktach, które mamy w naszym zamówieniu,
zapiszmy to tak
i będziemy chcieli do zmiennej output,
którą mamy u góry dodawać nie getPrice znanego produktu ale getName,
czyli będzie to getName
i następnie również getPrice. Więc tu
możemy sobie zastosować taki trik żeby troszeczkę mieć mniej kodu, utworzymy sobie
stałą, którą nazwiemy product i w niej zapiszemy odwołanie do
danego produktu,
wstawimy sobie to tutaj i dzięki temu pod spodem
mogę się już odwołać do tej stałej produkt
i powiedzieć product.getName, zróbmy to również w takim oto ciągu i
wtedy musimy to w tych dolarach zapisać czy dolar i takie nawiasy,
następnie postawimy dwukropek i będziemy
chcieli podstawić cenę takiego produktu więc product.getPrice. Wywołujemy metodę
żeby nam zwróciła cenę tego produktu, zapisujemy,
i zauważ mamy już tutaj te produkty,
natomiast jeszcze po każdym z produktów trzeba dodać
znak nowego wiersza więc albo tu trzeba wstawić Enter albo postawić ten taki
specjalny znak, zapisujemy, tu jeszcze raz jeszcze raz wyczyszczę,
zobacz, zapisuje i mamy zamówienie numer 100 to jest jego data
i mamy kupione produkty i ich ceny.
Wiem, że ten przykład był długi wydaje się skomplikowany ale jeżeli na spokojnie go
sobie przerobisz i w razie czego jeszcze raz obejrzyj tę lekcję to mam nadzieję, że
zaczynasz widzieć potęgę programowania obiektownego.
Pozwala nam to opisać rzeczywistość czyli opisaliśmy produkt i zamówienie.
Do zamówienia te produkty mogliśmy dodać i
później w bardzo łatwy sposób mogliśmy powiedzieć
podaj mi informację o tym zamówieniu, co
zwróciło nam ładnie sformatowane dane, które np.
na stronie internetowej mogłyby zostać wyświetlone.
Jeżeli byśmy tu do zamówienia dodali
kolejne produkty one również by się tutaj pojawiły.
Więc mam nadzieję, że widzisz jak zaczynają się ze sobą łączyć wszystkie te koncepcje,
które do tej pory poznałeś w tym kursie.
No i programowanie obiektowe lub programowanie zorientowane obiektowo jak
się o tym mówi jest dostępne prawie w każdym języku programowania więc warto
wiedzieć jak to działa i kiedy będziesz się uczył danego języka
po prostu nauczyć się tego zapisu, który
tam jest bo same koncepcje będą takie same.