Ganz einfach: deine dummy() Funktion ist public. Daher kannst Du in der Beta Klasse dummy() aufrufen.
Dummy an sich allerdings ist eine Funktion der Klasse Alpha, und kann daher auf alle globalen Variablen der Klasse Alpha zugreifen.
Würdest Du jetzt versuchen Alpha.variablePrivate in der Beta Klasse aufzurufen, würde das nicht gehen, da Beta nicht direkt auf private Variablen Alphas zugreifen kann.
Dies ist auch der Grund dafür, weshalb es im Regelfall public getter- & setter-Methoden gibt. Diese werden von außerhalb aufgerufen und bearbeiten eine globale Variable. Wenn Du nicht willst, dass eine Variable von außen geändert werden kann, lässt Du die setter-Methode weg. Willst Du nicht, dass man von außen die Variable bekommen kann, lässt Du die getter-Methode weg.
public int getVariablePrivate() {
return variablePrivate;
}
public void setVariablePrivate( int newVariablePrivate) {
variablePrivate = newVariablePrivate;
}
Punkte: 25
Prinzipiell richtig, ich würde aber auf den Ausdruck "globale Variable" verzichten und nur "Variable" verwenden. Im Gegensatz zu anderen Programmiersprachen gibt es in Java keine globalen Variablen, da diese immer zu einer Klasse gehören und nicht alleine existieren können.
─ b15g 06.12.2021 um 22:03