Witam serdecznie,
otóż zauważyłem że Eclipse czasami pozwala na operacje które nie powinny mieć miejsca
(przynajmniej moim zdaniem) i chciałbym to zweryfikować otóż mam sobie bardzo prostą klasę Main:
public class Main {
private int liczba;
public int getLiczba() {
return liczba;
}
public void setLiczba(int liczba) {
this.liczba = liczba;
}
}
jak widać żadnej magii tu nie ma jednak gdy w tej klasie wywołam sobie metodę main to z jakiegoś dziwnego powodu w metodzie main mogę mieć bezpośredni dostęp do pól prywatnych KLASY Main a wygląda to tak
public class Main {
private int liczba;
public int getLiczba() {
return liczba;
}
public void setLiczba(int liczba) {
this.liczba = liczba;
}
public static void main(String[] args) {
Main jakasLiczba = new Main();
jakasLiczba.liczba = 2000;
System.out.println(jakasLiczba.getLiczba());
}
}
JVM pozwala na takie zabiegi bo w końcu main jest tylko metodą a metody danej klasy mają dostęp nawet do danych prywatnych. Zawszę myślałem że main jest trochę oderwany od tej logiki mógłby ktoś to potwierdzić lub zaprzeczyć?
Pomijam kwestię że to prawdopodobnie jest super zła praktyka.