Yahoo~
Mir ist da neulich was aufgefallen, was meines erachtens nicht gehen dürfte. Ich zeig euch einfach mal nen Code.
Wie man sieht wird hier der private-status von x einfach ignoriert. Damit kann ein Objekt einfach in den Variablen eines anderen Objekts der selben Klasse rumpfuschen, was eindeutig gegen das Geheimnisprinzip verstößt.
Da Java aber eigentlich großen Wert auf Strukturiertheit legt frage ich mich: Haben die das einfach vergessen? Oder gibt es einen Grund, dass man das machen darf? Oo
Das ganze funktioniert auch Klassenübergreifend, wenn die Variablen protected und die Klassen in der selben Klassenhierarchie sind. Also meinetwegen:
Damit könnte man sich schön sein Programm zerschießen, wenn man nicht vorsichtig ist, was in Java schon verdammt schwer ist.
Ist jetzt nicht so, dass meine Welt deswegen zusammenbricht, aber es wundert mich eben.
Mir ist da neulich was aufgefallen, was meines erachtens nicht gehen dürfte. Ich zeig euch einfach mal nen Code.
Java:
public class MeineKlasse {
private int x;
// mögliche variablen
// mögliche konstruktoren
public void meineMethode(MeineKlasse mk) { // die methode könnte auch anders aussehen, wichtig ist dass sie ein objekt der eigenen klasse erwartet
mk.x++; // das sollte nicht gehen..tuts aber
}
// mögliche methoden
}
Da Java aber eigentlich großen Wert auf Strukturiertheit legt frage ich mich: Haben die das einfach vergessen? Oder gibt es einen Grund, dass man das machen darf? Oo
Das ganze funktioniert auch Klassenübergreifend, wenn die Variablen protected und die Klassen in der selben Klassenhierarchie sind. Also meinetwegen:
Java:
public class MeineKlasse {
protected int x;
// mögliche variablen
// mögliche konstruktoren
public void meineMethode(MeineKlasse2 mk) {
mk.x++;
}
// mögliche methoden
}
Ist jetzt nicht so, dass meine Welt deswegen zusammenbricht, aber es wundert mich eben.