Sichtbarkeiten-Übung in Java-Code?
Hey, ich habe aufgrund der Corona-Situation zurzeit keinen Kontakt zu meinen Informatiklehrer. Wir sollen zurzeit Übungen zu Java machen.
Mein Problem: Ich habe keinen Plan von Sichtbarkeiten in Java.
Ich weiß, es gibt public, private, protected und wie sie funktionieren, aber naja, hier ist meine Aufgabe. Bitte helft mir (nicht mit stumpfen Lösungen, sondern bitte sowas wie Pseudocode, damit ich den Code schon selber schreiben kann, denn ich muss es ja sowieso verstehen).
Diese drei Dateien sind gegeben:
class TestRobot {
private int secretKey = 602413;
protected int numberOfProcessorCores = 4;
boolean hasFirewall = false;
public String id = "58-08-2";
}
class Story {
public static void main(String args[]) {
TestRobot tr = new TestRobot();
Terminal terminal = new Terminal();
terminal.hackRobot(tr);
}
}
class Terminal {
}
Die Klasse TestRobot enthält vier Attribute, die durch unterschiedliche Sichtbarkeiten geschützt sind.
Implementiere in der Klasse Terminal eine public-Methode hackRobot(). Diese soll einen TestRobot als Parameter annehmen, und alle Attribute der Klasse TestRobot ausgeben, auf die man von der Klasse Terminal aus Zugriff hat.
Bitte helft mir. Ich bin wirklich schlecht mit Java.
2 Antworten
Ganz einfach. Zunächst musst du verstehen, was die einzelnen Sichtbarkeiten bedeuten. Kurz gefasset:
- private = Kann nur in der Klasse aufgerufen werden, in der die Variable deklariert ist
- public = Kann von überall aufgerufen werden.
- keine Sichtbarkeit (auch package-private genannt) = Kann innerhalb des packages aufgerufen werden
- protected = Sozusagen der "Große Bruder" von package private. Die Variable kann nur in Klassen im package aufgerufen werden und zusätzlich noch in Unterklassen (z.B. Klassen die von dieser Klasse implementieren)
(Hier das ganze nochmal als Tabelle)
Jetzt, da du das weißt, musst du schauen, welche Variablen du zurückgeben kannst :D
LG
Da die Formatierung von deinem Code echt schlecht ist, gehe ich mal nicht auf den Code oder Aufgabenstellung ein, sondern erklär einfach mal die Begriffe. Dann sollte es klar sein.
Methoden oder Variablen vom Typ private sind nur in der aktuellen Klasse sichtbar, in allen anderen Klassen bleiben sie dagegen unsichtbar
Methoden oder Variablen vom Typ protected sind in der aktuellen Klasse und in abgeleiteten Klassen sichtbar.
Membervariablen und Methoden vom Typ public sind im Rahmen ihrer Lebensdauer überall sichtbar.
Und was sont noch interessant sein könnte:
Variablen und Methoden mit dem Attribut static sind nicht an die Existenz eines konkreten Objekts gebunden, sondern existieren vom Laden der Klasse bis zum Beenden des Programms.
Hoffe das hilft. Wenn nicht, dann füge ich noch ein Beispiel hinzu. Aber dürfte eigentlich reichen so