Java

obiektowy język programowania


klasa i obiekt, polimorfizm, modyfikatory dostępności,
przykład

Obiektowa struktura języka Java, zapewniająca wysokie bezpieczeństwo ułatwiająca wykorzystanie wcześniej już stworzonych modułów oraz współpracę między programistami, odpowiada współczesnym zapotrzebowaniom. Systemy budowane dzisiaj różnią sie od budowanych 10 czy 20 lat temu. Sa pod każdym względem większe i bardziej złożone, ale też bardziej niepewne i poddawane ustawicznym zmianom. Obiektowe podejście do analizy i projektowania prowadzi do bardziej stabilnych systemów. Ponadto dzisiejsze interakcyjne systemy o dostępie bezpośrednim poświęcają o wiele więcej uwagi interfejsowi użytkownika, niż zorientowane tekstowo systemy wsadowe lat 60 i 70-tych. Podejście obiektowe do takich systemów jest bardziej naturalmym sposobem postępowania z systemami zorientowanymi na użytkownika.

1. Klasa i obiekt

Klasa - opis obiektu lub obiektów z jednolitym zbiorem atrybutów i usług, zawierający opis tworzenia nowych obiektów w klasie.
Obiekt - egzemplarz danej klasy, zawiera watrości atrybutów i wyłacznie na nich działające usługi.
deklaracja klasy w Java:
class nazwa_klasy extends nazwa_klasy_przodka implements nazwa_interfejsu
{
deklaracje atrybutów;
deklaracje funkci;
konstruktor klasy
}
Konstruktor w Java ma tę samą nazwę co i nzwa klasy, jest to metoda wywoływana w czasie kreacji egzemplarza danej klasy, inicjalizowane są pola obiektu.
Tworzenie nowego obiektu danej klasy odbywa się przez użycie kluczowego słowo new do wywołania konstruktora danej klasy.
np.:
Figura f;
f = new Figura(); //jeżeli konstruktor jest bezargumentowy
Lotnisko A;
A = new Lotnisko("Rembiechowo"); //konstruktor z argumentem
lub w skrócie:
Lotnisko A = new Lotnisko("Rembiechowo");

2. Polimorfizm


Funkcje polimorficzne to funkcje nie zwracające uwagi na to, jakiego typu zmienne są wykorzystywane przez nie. W Javie upraszczanie programów przy wykorzystaniu funkcji polimorficznych możliwe jest na trzy sposoby:
dziedziczenie - podklasy automatycznie dziedziczą metody klas nadrzędnych; ponadto każda funkcja, której argumentem może być klasa, zaakceptuje jako argument również każdą podklsę tej klasy;
przeciążnie - możliwe jest użycie w obrębie tej samej klasy metod o identycznych nazwach, ale różniących się typami przyjmowanych argumentów;
interfejs - wykorzystywanie w różnych klasach metod o identycznych nazwach, przyjmujących argumenty tego samego typu, przydatny ze względu na brak wielodziedziczenia w Java

3. Modyfikatory dostęności

W Javie istnieją różne poziomy dostępności klas i ich elementów dla innych klas. Standardowo, zdefiniowana klasa oraz jej metody i zmienne są dostępne wyłącznie dla innych klas w tym samym pakiecie. W przypadku prostych apletów oznacza to, że dostęp do klasy mają wyłacznie inne klasy znajdujące się w tym samym katalogu.
public - klasa z tym modyfikatorem jest dostępna dla każdej innej klasy. kiedy procesor VM otrzymuje polecenie uruchomienia nowego apletu, klasa tego apletu musi być publiczna. Ale już inne klasy, do których dostęp musi mieć uruchamiany aplet, nie muszą być publiczne.
Metody i zmienne elementarne klas publicznych, które zostaną same zadeklarowane jako publiczne, będą dostępne dla innych klas.
private - modyfikator, który ogranicza dostęp do elementów klasy tak, aby żadne inne klasy nie miały bezpośredniego dostępu do metod i zmiennych elementarnych tej klasy.
protected - w ten sposób deklarowane są elementy chronione, dostępne dla wybranych podklas w innych pakietach, deklarowanie metod jako chronionych pozwala na ich używanie w ich własnych klasach, a także w podklasach tych klas.
private protected - modyfikator ten zachowuje się podobnie jak protected, ale elementy zadeklarowane w ten sposób nie są dostępne dla innych klas nie będących podklasami, bez względu na to, czy znajdują się one w tym samym pakiecie.


4. Przykład



Kod apletu.