po-w8.utf8.pdf

(203 KB) Pobierz
648110975 UNPDF
Tworzenie obiektów
Dostęp do obiektów jest realizowany przez referencje.
Obiekty w języku Java są tworzone poprzez użycie słowa
kluczowego new. String lan = new String(”Lancuch”);
Obszary pamięci w których przechowywane są dane:
Stos zmienne automatyczne, referencje do
obiektów (ale nie obiekty).
Sterta wszystkie obiekty utworzone w trakcie ży
cia programu,
Obszar statyczny dane dostępne w dowolnym momencie
podczas pracy programu (wprowadzone
słowem kluczowym static),
Obszar poza RAM obiekty przechowywane w postaci stru
mieni bajtów poza pamięcią RAM.
648110975.002.png
Opakowywanie (uobiektowianie) typów pierwotnych
Zmienne tworzone w oparciu o typy pierwotne, tworzone są
jako zmienne automatyczne na stosie:
int i = 1;
czasem zachodzi potrzeba utworzenia dynamicznej zmiennej
przechowującej wartość typu pierwotnego ...
czasem korzystne jest by wartość typu pierwotnego traktowana
była jak obiekt ...
... wtedy używa się klasy „opakowującej”
Integer i = new Integer(1);
648110975.003.png
Opakowywanie (uobiektowianie) typów pierwotnych
klasy opakowujące
Pierworne typy danych oraz odpowiadające im klasy „opakowujące”:
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
void
Void
648110975.004.png
Zasięg zmiennych, czas życia obiektów
Zasięg zmiennych okreslony jest tak samo jak w C++. Czas życia
obiektów jest inny.
Zasięg zmiennych automatycznych jest określany nawiasami :
{
int i = 1
} // koniec zasięgu (zmienna i przestaje istnieć)
Obiekty są dostępne poza zasięgiem, w którym aktualne są
referencje:
{
String s = new String(”Lancuch”);
} // koniec zasięgu zmiennej s
// ale obiekt wskazywany przez s nadal istnieje!
Obiekty do których nie ma dostępu ze względu na to, że wszystkie
referencje wskazujące na ten obiekt znajdują się poza zasięgiem, są
usuwane przez garbage collector (w C++ istnieją bezużytecznie do
końca działania programu stanowiąc tzw. ’wyciek pamięci’)
648110975.005.png
Operator przypisania
Przypisanie realizowane jest przy pomocy operatora =
Podczas przypisywania jednemu obiektowi innego obiektu
kopiowana jest referencja. Po zrealizowaniu takiej operacji
zmienne wskazują na ten sam obiekt (obszar pamięci). Obiekt
nie jest kopiowany!
patrz przykład Przypisanie
648110975.001.png
Zgłoś jeśli naruszono regulamin