prawdopodobnie słyszałeś już termin obiekt w kontekście programowania. Ale co to naprawdę znaczy? Zacznijmy od spojrzenia na prawdziwe przedmioty, takie jak długopisy, książki, smartfony, komputery itp.
każdy obiekt ma różne formy i kształty, ale można sklasyfikować różne wersje tego samego obiektu do kategorii lub grupy. Dlatego możesz iść do sklepu meblowego i rozpoznać różne przedmioty jako” krzesła”, nawet jeśli wyglądają bardzo różnie od siebie.
wszystkie te różne obiekty rozpoznajesz jako należące do tej samej grupy lub typu. Zauważasz podobieństwa między różnymi obiektami, zbierasz informacje i tworzysz mentalną reprezentację dla danej kategorii obiektów.
na przykład istnieją różne rodzaje książek, ale wszystkie mają zwykle tytuł, autora, okładkę, strony itp. Innymi słowy, poszczególne książki mają podobne atrybuty, które pozwalają zaklasyfikować je w swoim umyśle jako część kategorii ” książka.”
ta mentalna lista atrybutów, które właśnie opisaliśmy dla książki, działa jako rodzaj planu dla tego obiekt. W programowaniu nazywa się to klasą. Podczas tworzenia klasy możesz wymyślić dowolną niestandardową nazwę, dlatego są one nazywane typem nazwanym. Jak zobaczysz, pozwalają one również grupować wiele szczegółów razem, dlatego też mogą być określane jako złożone typy. Z drugiej strony, proste typy, które już znasz ,takie jakint
lubdouble
, mają nazwy predefiniowane przez język programowania i nie można ich modyfikować.
Jak wymyślić nazwy klas?
podobnie jak nazewnictwo zmiennych, nazwy klas muszą być opisowe i pisane (pamiętaj, unikaj skrótów!). Główną różnicą jest to, że zamiast standardowego camelCase, pierwsza litera powinna być również wielka ,jak MarvelousCreature
, a nie marvelousCreature
.
projektowanie klas
aby zobaczyć, jak zaprojektować klasę, przejdźmy do przykładu książki. Poniżej zidentyfikowaliśmy próbkę informacji, które mogłyby opisać daną książkę:
-
tytuł
-
Autor
-
liczba stron
-
wydawca
To atrybuty każdej książki w prawdziwym życiu. W kontekście klas atrybuty te nazywane są w Javie polami. Pola klasy to po prostu wymyślna nazwa dla czegoś, co już znasz: zmienne!
teraz masz teorię, więc załóżmy to na piśmie!
aby zadeklarować klasę w Javie, użyj słowa kluczowegoclass
, po którym następuje nazwa własna. Następnie zakończ go klamrami ({}
), które obejmą całą zawartość. Zawiera to pełną listę właściwości:
class Book {// functionality of the class}
teraz dodajmy pola zdefiniowane wcześniej:
class Book { String title; String author; int numberOfPages; String publisher="OC";}
zauważ, że pierwsze trzy nie mają wartości, ale ostatnia ma? Jeśli jesteś wydawcą, który chce skatalogować swoje książki, wiesz, że wartość wydawcy zawsze będzie taka sama, bez względu na to, jaką książkę produkujesz. Tytuły książek, autorzy i numery stron będą się jednak zmieniać w zależności od konkretnej książki.
Jeśli jednak wrócisz do oryginalnego przykładu księgarni internetowej, Klasa wyglądałaby bardziej tak:
class Book { String title; String author; int numberOfPages; String publisher;}
ponieważ będziesz mieć książki od wielu różnych wydawców, nie możesz wprowadzić wartości domyślnej dla wszystkich z nich. Tak, tutaj, zdefiniuj pole i umieścić w wartości później!
korzystając z klas
masz zupełnie nowy typ – Book
📖 – załatwione! Co możesz z tym zrobić? W końcu klasy są bardziej abstrakcyjne lub koncepcyjne. Pola klas są jak szablon w księgarni internetowej: bez względu na to, jakiej książki szukasz, pojawią się te same informacje (tytuł, autor, liczba stron itp.).
ale kiedy szukasz, nie wpisujesz tylko „książka”, prawda? To nie jest przydatne! Potrzebny jest konkretny przykład książki, powiedzmy, Alicja w Krainie Czarów. Szukasz prawdziwego obiektu, który możesz przejrzeć i przeczytać. Tak samo jest w programowaniu komputerowym.
aby pracować z klasą, musisz utworzyć konkretny obiekt tej klasy. Innymi słowy, potrzebujesz konkretnego obiektu, takiego jak konkretna książka (Alicja w Krainie Czarów). Ta konkretna książka nazywa się instancją klasy! Jak sama nazwa wskazuje, proces ten nazywany jest instancjowaniem lub inicjalizacją obiektu. W tym celu tworzysz zmienną klasy.
w Javie każde pole wytworzonego obiektu musi mieć wartość. Wartości te można podać na kilka sposobów. W przykładzie wydawcy: twarde ustawianie wartości w definicji klasy.
innym sposobem jest podanie wartości w instrukcji, która wytworzy klasę. Zobaczmy, jak to zrobić. Oto kod do utworzenia książki z wartościami podanymi w momencie utworzenia obiektu:
Jak widać, istnieje kilka różnych elementów. Najpierw wykonaj regularną deklarację zmiennej o nazwie myBook
i jej typie Book
. Pamiętasz, jak powiedzieliśmy, że klasa jest typem złożonym o nazwie? Oto dowód! Zamiast int
double
lub string
, nasz typ jest klasą, którą wymyśliliśmy! 💫
teraz nadchodzi fajna część. Zmienna jest inicjowana wyrażeniem tworzenia obiektu new Book("Coding is art","Becky James",425);
. To wyrażenie składa się ze słowa kluczowego new
, po którym ponownie pojawia się nazwa klasy (Book
) oraz niektórych nawiasów ()
z wartościami wewnątrz. Jak widać, nawias zawiera określoną wartość dla każdego z oryginalnych pól: title
author
I numberOfPages
. Oddzieliliśmy je przecinkiem. Na koniec Zakończ dwukropkiem ;
. Dzięki temu stworzyłeś instancję książki klasowej! 📔
praca z atrybutami (polami)
Phew! To było dużo słownictwa i pojęć. Zanim przejdziemy dalej, podsumujmy krótkim diagramem:
czy tak lepiej? Pamiętaj tylko:
-
Użyj klasy jako szablonu dla przyszłych obiektów. W klasie określ nazwę i typ niektórych zmiennych. W Javie nazywane są one ogólnie atrybutami, a konkretnie polami.
-
aby użyć stworzonego przez Ciebie fajnego planu, musisz utworzyć obiekt za pomocą procesu tworzenia instancji. Oznacza to zadeklarowanie zmiennej z Twoją klasą jako typu, a następnie użycie wyrażenia tworzenia obiektu, które widziałeś powyżej.
-
gdy tworzysz instancję obiektu, tworzysz wartości dla każdego z pól zdefiniowanych już w klasie.
-
obiekt nazywa się instancją klasy.
teraz jesteś gotowy! Masz swój obiekt książki, ale powiedzmy, że zmienisz zdanie co do wartości zmiennych. Jak uzyskać dostęp do pól powiązanych z Twoim nowym obiektem?
powszechnym sposobem dostępu do pól w wielu językach programowania jest użycie tzw. notacji kropkowej. Oznacza to, że musisz wpisać nazwę instancji lub obiektu, po której następuje interesująca nazwa atrybutu, oddzielona kropką: instanceVariableName.attributeName
.
myBook.title = "Coding is Art";myBook.author = "Becky James";myBook.numberOfPages = myBook.numberOfPages + 10;
teraz możesz ustawić zmianę wartości pól w swoim obiekcie! Wyobraź sobie, że dodałeś dziesięć stron, ponieważ zapomniałeś dodać indeks książki. Możesz wpisać nowy numer bezpośrednio lub dodać dziesięć stron do istniejącej wartości, jak w trzeciej linii. Jest to dość przydatne przy wprowadzaniu małych zmian. 🙂
spróbuj sam
https://api.next.tech/api/v1/publishable_key/2A9CAA3419124E3E8C3F5AFCE5306292?content_id=2871d3da-5053-4373-a813-46b6fcf8118c
podsumowanie
w tym rozdziale nauczyłeś się podstaw obiektów:
-
klasa jest planem obiektu.
-
zmienna klasy nazywana jest instancją klasy lub obiektu.
-
Klasa pozwala na tworzenie złożonych typów poprzez grupowanie ich atrybutów poprzez definiowanie pól.
-
aby utworzyć obiekt, musisz zadeklarować zmienną klasy i utworzyć jej instancję.
-
notacja kropkowa zapewnia dostęp do pól.