Wyszukiwanie w witrynie

Obiektowe podejście do programowania i enkapsulacji w języku Java — część 5


Od początku tej serii (a nawet wcześniej) wiedziałeś, że Java jest językiem programowania obiektowego. Obiektowy język programowania opiera się na koncepcji „obiektów”, która zawiera dane jako atrybuty metod.

Każdy obiekt w Javie ma stan i zachowanie reprezentowane przez zmienne i metody instancji. Każde wystąpienie klasy może mieć unikalną wartość swojej zmiennej instancji.

Na przykład,

Maszyna A może być wyposażona w Debiana i 8 GB pamięci RAM, podczas gdy Maszyna B może mieć zainstalowane Gentoo z 4 GB pamięci RAM. Oczywiste jest również, że zarządzanie Maszyną, na której zainstalowano Gentoo, wymaga większej wiedzy – zachowania zależnego od jej stanu. Tutaj metoda wykorzystuje wartości zmiennych instancji.

JVM podczas analizowania klasy tworzy obiekt tego rodzaju. Kiedy piszesz klasę, w rzeczywistości zachowujesz się jak kompilator, który mówi twojej klasie, co obiekt powinien wiedzieć i jak powinien działać. Każdy obiekt określonego typu może mieć inną wartość dla tej samej zmiennej instancji.

Każda instancja klasy ma tę samą metodę, ale możliwe jest, że wszystkie zachowują się inaczej.

Klasa systemu operacyjnego ma 3 zmienne instancji, a mianowicie Nazwa systemu operacyjnego, Typ systemu operacyjnego, Kategoria systemu operacyjnego.

OS
OS_Name
OS_Type
OS_Category
Boot()
Reboot()
scan()

Metoda Boot() uruchamia jeden system operacyjny, który jest reprezentowany przez nazwę systemu operacyjnego dla tej instancji. Zatem jeśli boot() w jednej instancji uruchomisz Debiana, a w innej instancji uruchomisz Gentoo. Kod metody pozostaje taki sam w obu przypadkach.

Void Boot() 
	{
	bootloader.bootos(OS_Name);
	}

Już wiesz, że program rozpoczyna wykonywanie zaraz po metodzie main(). Możesz przekazywać wartości do swojej metody.

Na przykład chcesz powiedzieć systemowi operacyjnemu, jakie usługi mają zostać uruchomione podczas rozruchu, jako:

You are already aware that the program starts to execute just after the main() method. You can pass values into you method. For example you would like to tell you OS what services to start at boot as:
OS.services(apache2);

To, co przekazujesz do metod, nazywa się argumentami. Wewnątrz metody można użyć zmiennej z typem i nazwą. Ważne jest, aby przekazywać wartości z parametrem, jeśli metoda przyjmuje parametr.

OS deb = debian();
deb.reboot(600);

Tutaj metoda ponownego uruchomienia systemu operacyjnego przekazuje wartość 600 (uruchom ponownie komputer po 600 sekundach) jako argument metody. Do tej pory widzieliśmy metodę zawsze zwracającą void, co oznacza, że nic nie zwraca, po prostu:

void main()
	{
	…
	…
	}

Możesz jednak poprosić kompilator, aby otrzymał dokładnie to, czego pragniesz, a kompilator nie zwróci Ci błędnych typów. Możesz po prostu zrobić tak:

int Integer()
	{
	…
	…
	return 70;
	}

Do metody można wysłać więcej niż jedną wartość. Można to zrobić wywołując dwie metody parametryczne i wysyłając je do argumentów. Uwaga: typ zmiennej i typ parametru muszą zawsze być zgodne.

void numbers(int a, int b)
	{
	int c = a + b;
	System.out.print(“sum is” +c);
	}
Deklaruj i inicjuj zmienne instancji

1. Gdy nie znasz wartości do zainicjowania.

int a;
float b;
string c;

2. Kiedy znasz wartość do zainicjowania.

int a = 12;
float b = 11.23;
string c = tecmint;

Uwaga: zmienne instancji są często mylone ze zmiennymi lokalnymi, jednak różnica między nimi jest bardzo cienka.

3. Zmienne instancji są deklarowane wewnątrz klasy, w przeciwieństwie do zmiennych lokalnych deklarowanych w ramach metody.

4. W przeciwieństwie do zmiennych instancji, zmienne lokalne muszą zostać zainicjowane, zanim będą mogły zostać użyte. Kompilator zgłosi błąd, jeśli użyjesz zmiennej lokalnej przed jej inicjalizacją.

Kapsułkowanie

Być może słyszałeś o enkapsulacji. Jest to cecha większości obiektowych języków programowania, która umożliwia powiązanie danych i funkcji w jeden komponent. Enkapsulacja jest obsługiwana przez klasy i chroni kody przed przypadkowym uszkodzeniem, tworząc ścianę wokół obiektów i selektywnie ukrywając ich właściwości i metody.

Jeśli zajdzie taka potrzeba, rozwiniemy szczegółowo kwestię enkapsulacji w odpowiednim samouczku. Na razie wystarczy, że wiesz, czym jest enkapsulacja? Co to robi? Jak to się robi?

To wszystko na teraz. Utrzymuj kontakt podczas następnej części serii Java „klasy i obiekty w Javie oraz Stwórz swój pierwszy obiekt w Javie”, podczas gdy ja nad tym pracuję. Jeśli podoba Ci się seria i post, daj nam znać w komentarzu.