Programy w Javie zbudowane są z klas (class), które definiują stan oraz zachowanie obiektów (za pomocą składowych i metod).
1 2 3 4 5 6 |
public class Name { // kod programu // składowe (zmienne), metody... } |
Obiekt utworzony na podstawie danej klasy (new Name) nazywany jest instancją.
1 |
Name object = new Name(); |
Zmienna object – to zmienna referencyjna, dzięki której możemy odwoływać się do składowych i metod w danej klasie. Ale o tym za chwile 😉
Klasa, to jakby szablon lub instrukcja obsługi dla danego obiektu. Zazwyczaj programy w Javie dzielą się na wiele klas (kolekcji, pakietów) powiązanych ze sobą zależnościami, a każda z nich odpowiada za coś innego. Całość tworzy program.
Wyobraź sobie, że samochód to obiekt. W klasie możemy przechowywać jego parametry (czyli składowe) np: model, marka, moc itd.:
1 2 3 4 5 6 7 |
public class Car { String brand; // marka String model; // model int power; // moc silnika } |
Każda składowa musi być opisana typem danych, czyli musi wiedzieć jakie wartości może przyjmować. W przykładzie mamy:
- String – ciąg znaków
- int – liczba całkowita
Listę dostępnych typów znajdziesz w dokumentacji.
Metody (funkcje) jakie możemy użyć w samochodzie to np: uruchom silnik, wyłącz silnik, pokaż informacje o samochodzie itp.
Budowa metody:
1 2 3 |
modyfikator typ_danych nazwa_metody(typ zmienna_1, typ zmienna_2, ...) { // kod metody } |
Przykład metody, która zwraca (return) liczbę:
1 2 3 |
public int Liczba() { return 10; } |
Jeśli metoda nic nie zwraca to stosujemy void:
1 2 3 |
public void HelloWorld() { System.out.println("Hello World"); } |
To wszystko co już wiemy spróbujmy teraz przełożyć na kod programu.
Car.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public class Car { String brand; // marka String model; // model int power; // moc silnika public int startEngine() { // uruchom silnik return 1; } public int stopEngine() { // wyłącz silnik return 0; } public void showCarInfo(String brand, String model, int power) { System.out.println(brand); // wyświetli markę System.out.println(model); // wyświetli model System.out.println(power + " KM"); // wyświetli moc silnika // itd :) ... } } |
W powyższej klasie brakuje nam jeszcze metody main, bez której nie zobaczymy efektów naszej pracy 🙂 O tej metodzie pisałem w poprzednim rozdziale. Tak dla przypomnienia jest to główna metoda, która jest wywoływana w programie jako pierwsza i od niej zaczyna się działanie programu.
1 2 3 4 5 |
public static void main(String[] args) { // wykonaj coś ... } |
Oczywiście moglibyśmy dodać tą metodę bezpośrednio w klasie Car, ale nie będzie to dobra praktyka. Dlatego stworzymy drugą klasę: CarTest.java i dodamy do niej ową magiczną metodę 🙂 Klasa testująca musi zawierać w nazwie drugi człon Test , inaczej nie skompilujemy programu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class CarTest { public static void main(String[] args) { Car object = new Car(); // tworzymy nowy obiekt klasy object.showCarInfo("Fiat", "Bravo", 165); // wyświetli: // Fiat // Bravo // 165 KM } } |
W klasie CarTest odwołujemy się do metody showCarInfo (z klasy Car) według konstrukcji – referencja.metoda().
1 |
object.showCarInfo("Fiat ", "Bravo", 165); |
Do składowych odwołujemy się w ten sam sposób:
1 2 3 |
object.brand = "Alfa Romeo"; object.model = "Giulietta Nuova II"; object.power = 240; |
Przykład:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class CarTest { public static void main(String[] args) { Car object = new Car(); object.brand = "Alfa Romeo"; object.model = "Giulietta Nuova II"; object.power = 240; object.showCarInfo(object.brand, object.model, object.power); } } |
Kolejny przykład:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class CarTest { public static void main(String[] args) { Car auto = new Car(); auto.showCarInfo("Fiat", "Bravo", 165); auto.showCarInfo("Alfa Romeo", "Giulietta Nuova II", 240); auto.showCarInfo("Volvo", "S80", 205); System.out.println(auto.startEngine()); // Wyświetli: // Fiat // Bravo // 165 KM // Alfa Romeo // Giulietta Nuova II // 240 KM // Volvo // S80 // 205 KM // 1 } } |
I jeszcze jeden przykład z zastosowaniem kilku referencji (auto1, auto2, auto3):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class CarTest { public static void main(String[] args) { Car auto1 = new Car(); auto1.showCarInfo("Fiat", "Bravo", 165); Car auto2 = new Car(); auto2.showCarInfo("Alfa Romeo", "Giulietta Nuova II", 240); Car auto3 = new Car(); auto3.showCarInfo("Volvo", "S80", 205); } } |
Czytaj dalej: HERMETYZACJA