W jaki sposób można uzyskać dostęp do publicznych pól klasy głównej z poziomu innej klasy, która nie zawiera się w głównej (obie znajdują się w tej samej paczce)?
Dostęp do pól klasy głównej
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1398
Chodzi Ci o coś takiego ?
KlasaA obj;
obj.poleTypuInteger = 3;
- Rejestracja: dni
- Ostatnio: dni
Chodzi mi o coś takiego:
public class Main {
public int ma;
public static void main(String[] args) {
}
}
public class Other {
int a;
Other() {
Main.ma = 0; /* kompilator zglasza blad */
}
}
- Rejestracja: dni
- Ostatnio: dni
Pole ma byc statyczne, sadze ze nie przeczytales nawet tego co kompilator powiedzial...
public static int ma;
- Rejestracja: dni
- Ostatnio: dni
Dziękuję za komentarz mobilizujący do działania : )
Długo by tłumaczyć, co właściwie było źle, ale informacja o konieczności użycia pola statycznego okazała się kluczowa (owszem, czytałem błędy, ale koncept statyczności jest jeszcze dla mnie dość nowy).
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Polska, Warszawa
- Postów: 1066
Wyobraź sobie, że pola statyczne, to jakby zmienne globalne dla wszystkich obiektów jednej klasy, a metody statyczne, to jak funkcje statyczne (zaskoczenie?:) ) dla takich zmiennych.
Nie jest to do końca prawdziwe, ale ułatwia zrozumienie czym jest dostęp statyczny. Dzięki słowu static można w Javie napisać program proceduralny nie różniący się niemal niczym od klasycznego funkcyjnego C - właściwie bez żadnych obiektów poza jedną klasą działającą jako przestrzeń nazw.
- Rejestracja: dni
- Ostatnio: dni
dla uściślenia - pole nie musi być statyczne ale wtedy trzeba się do niego dostać po stworzonej referencji ; )