Referencje są nazwami. Obiekty to coś. Możesz mieć różne nazwy rzeczy, nawet dla rzeczy, które tak naprawdę nie istnieją.
Można zadeklarować nazwy, bez faktycznie dając im żadnych „prawdziwe”, czyli, jak to:
GUI g1;
można przypisać znaczenie (prawdziwe rzeczy w odniesieniu do) do nazw z = operatora:
GUI g1 = some_gui;
Nazwy mogą zmieniać swoje znaczenie w czasie. Ta sama nazwa może odnosić się do różnych rzeczy w różnych punktach historii.
GUI g1 = some_gui;
doSomething();
g1 = some_other_gui;
Istnieją również synonimy: wiele nazw może odnosić się do tego samego:
GUI g2 = g1;
To dość dużo, co zrobić referencje. Są to nazwy przeznaczone do odniesienia się do rzeczy.
Rzeczy mogą być tworzone:
new GUI();
Rzeczy mogą być tworzone i nazwany na miejscu dla późniejszego wykorzystania (dosłownie!):
GUI g1 = new GUI();
I rzeczy można określić, używając jego nazwy (lub dowolne z jego nazw!):
g1.doSomething();
g2.doSomethingAgain();
Można utworzyć różne rzeczy tego samego rodzaju (klasy) i nam ed inaczej:
GUI g1 = new GUI();
GUI g2 = new GUI();
GUI g3 = new GUI();
GUI g1_synonym = g1;
:)
Myślę, że nie można użyć g2 w kodzie, ponieważ nie został jeszcze zainicjowany i jest pusty. – evilone
g1 również stanowi odniesienie! –
Myślę, że to pytanie zasługuje na miłą odpowiedź, aby pozostać w pobliżu! – slezica