Klasa – co oznacza w Javie

Cześć 🙂 . Pewnie się zastanawiacie dlaczego dodałam auto do artykułu na temat klasy (class) w Javie. Śpiesząc z wyjaśnieniem pomyślałam że to wpasowuje się dzisiejszy artykuł. Niektóre marki (nie wiem czy wszystkie) aut posiadają ich podział na klasy 🙂 . Auto powyżej jest klasy A.

Wracając do właściwego tematu artykułu 😉 . Opiszę czym jest klasa i jaką ona pełni rolę.

Klasa jest to szablon za pomocą którego można za modelować byt rzeczywisty. Służy do utworzenia obiektu a każdy obiekt utworzony z tej samej klasy ma podobne funkcjonalności. Tworzymy ją poprzez kluczowe słowo „Class” (informujące kompilator o tym, że ma do czynienia z definicją klasy) i zawsze nazywamy ją z dużej litery z zastosowaniem camelCase np Class MojaKlasa. Co więcej poprawnie napisana klasa powinna definiować jedną logiczną jednostkę. Taka klasa grupuje wtedy informacje które są ze sobą logicznie spójne. Bardzo ważne klasa definiuje typ obiektu, stanowi opis tego obiektu ale nie tworzy obiektu i nie jest tym obiektem.

No dobrze ale co to wszystko oznacza? Na samym początku gdy zaczynała się uczyć po usłyszeniu/przeczytaniu podobnej definicji pojawiło się u mnie powyższe pytanie. Znalazłam wówczas wyjaśnieni tej definicji z porównanie klasy do „przepisu” na to jak utworzyć obiekt. Co więcej na podstawie tej jednej receptury możemy wytworzyć konkretne egzemplarze (instancje) obiektów w dowolnej liczbie. Co więcej tworzenie nowych obiektów jest już związane z paradygmatem programowania obiektowego (OPP). Dzięki temu możemy utworzyć dany obiekt w dowolnym miejscu w programie.  

Ponadto klasa nie może mieć dwóch zmiennych o tej samej nazwie. Takie zmienne mogą występować ale w różnych klasach np.: int siła w klasie “wojownika” i w klasie “czarodziej” w grze RPG. Wówczas podczas gry bardzo łatwo jest porównać ile życia (siły) zostało naszemu bohaterowi, i jak bardzo silni , albo słabi są nasi przeciwnicy. Gdy się uczyłam i dopiero zapoznawałam się z tymi pojęciami znalazłam kanał „Pasja informatyki” gdzie zagadnienie klas i obiektów zostało bardzo obrazowo przedstawione. Jeśli więc ktoś zapamiętuje przez obrazy lub gra w gry i dopiero zaczyna przygodę z programowaniem – przytoczony powyżej materiał może być pomocny w zrozumieniu tematu. Ale również i dla aut można zastosować atrybut siły w odniesieniu do koni mechanicznych chociażby dla różnych modeli tej samej czy innej marki.

Ponadto klasa jest to pojęcie abstrakcyjne oznaczające w programowaniu obiektowym własny typ danych.  Oznacza to że stworzenie klasy jest równoznaczne ze stworzeniem nowego typu w naszym programie np.: typu „Car”, „Wjownik” czy „Czarodziej”.

Z czego składa się klasa?

Klasa składa się z metod (wewnątrz klas) oraz atrybutów (właściwości, cech). Innymi słowy jest to zbiór atrybutów i metod danego obiektu. Przykład klasy z polami :

public class CarClass {   
   private string color;
   private LocalDate yearOfProduction;
   private model;
   private Owner owner;
}

Wszystko co znajduje się pomiędzy {} to pełna definicja klasy.

W Javie powinna istnieć tylko jedna klasa główna z metodą statyczną – uruchomieniową z modyfikatorem dostępu public, typem danych void przyjmującą jako parametr metody tablicę string (String[] arg) czyli:

public static void main (String[] arg){ 
// kod znajdujący się wewnątrz metody mein 
};

Idąc dalej wyróżnimy, klasy abstrakcyjne i anonimowe, wewnętrzne. (Ale o tym w klejonych artykułach 🙂 ).

Domyślnie klasy dziedziczą po klasie Object, która jest klasą wszystkich klas w hierarchii dziedziczenia Javy. I w tym przypadku klasa nie musi jawnie wskazywać za pomocą słowa kluczowego extends, że dziedziczy po klasie Object. Natomiast w każdym innym przypadku należy zaznaczyć poprzez „extends” jeśli dziedziczymy po innej klasie lub słówkiem „implements” gdy implementujemy interfejs. Bardzo ważne jest również zasada dziedziczenia tylko po jednej klasie. W przypadku implementacji nie ma takiego ograniczenia.

Myślę że ten krotki opis klasy nie wyczerpuje w pełni tematu. Jednak może stanowić wiedzę w pigułce dla odświeżenia wiedzy np. przed rozmową kwalifikacyjną 🙂 . Artykuł obejmuje swoim zakresem takie terminy jak obiekt czy programowanie obiektowe ale myślę że na tą tematykę przeznaczę kolejne artykuły.

Jeśli uważasz powyższy tekst za pomocny, będę wdzięczna za podanie go dalej oraz zapraszam do subskrypcji. Do zobaczenia w kolejnym wpisie 🙂 🙂 !!

Źródła z których korzystałam:

  • Oracle documentation
  • „Java w 21 dni” – Rogers Cadenhead, wydanie 7
  • „Pasja informatyki: Obiektowy C++ odc. 1: Podejście obiektowe. Klasy. Obiekty”

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *