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)?
Przez kropkę? :-|
Chodzi Ci o coś takiego ?
KlasaA obj;
obj.poleTypuInteger = 3;
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 */
}
}
Pole ma byc statyczne, sadze ze nie przeczytales nawet tego co kompilator powiedzial...
public static int ma;
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).
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.
dla uściślenia - pole nie musi być statyczne ale wtedy trzeba się do niego dostać po stworzonej referencji ; )
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.