Bei der Programmierung in Java , obskure Warnmeldungen kann während der Kompilierung erscheinen . Die Ermittlung der Quelle für diese Fehler kann ein Problem werden, wenn Sie nicht wissen, im Rahmen der Fehler oder wie man es anzugehen sind . Im Falle Symbolhandling können Java-Programme, Objekte und Vererbung präsentieren schwierigen Situation Debuggen . Allerdings ist es wichtig, die Regeln der Klasse Vererbung in Java erinnern , so dass ein Fehler wie ein " Symbol kann nicht gefunden werden " kann effektiv verfolgt werden. Die "nicht finden Symbol " Fehler
Bei der Ausführung eines Java-Programms wird das Programm zunächst in Bytecode kompiliert . Konkret bedeutet dies, dass der Compiler alle Variablen , Methoden und Objekte im Code deklariert überprüft und schafft eine Art Referenz für die Variable oder Methode Namen . Diese Namen , oder " Symbole " stellen Sie den Speicherort im Speicher der Variable, ein Objekt oder Methode. Wenn Sie versucht der Programmierer , um eine Variable oder eine Methode , ohne vorher erklärt es zu benutzen , wird der Compiler geben eine " nicht finden können, Symbol" Fehler bezeichnet, dass eine Variable oder Methode unter dem angegebenen Namen existiert nicht.
Java Klassen und Vererbung
Wie Symbole definiert sind wird ein bisschen mehr Nuancen , wenn es um Java-Klasse Vererbung. Wenn Sie Java-Objekte erstellen, können Sie diese Objekte stammen aus anderen Klassen , die bereits existieren . Damit die abgeleitete Klasse " erbt " Methoden und Variablen der Basisklasse . Im Falle der Vererbung , erklärte eine Methode oder Variable in einer Basisklasse wird direkt von der Erben -Klasse verwiesen , was bedeutet, diese Symbole sind in der Ableitung Klasse.
Java Konstruktoren und Vererbung
Ein besonderes Verfahren in allen Klassen abgeleitet oder nicht, ist der Konstrukteur . Der "default" -Konstruktor reserviert Speicher für ein Objekt , wenn Sie es instanziieren in Ihrem Programm. Sie können jedoch eine benutzerdefinierte Konstruktor variablen Werten zu initialisieren , oder führen andere Subroutinen , wenn ein Objekt erstellt . Beim Erstellen einer benutzerdefinierten Konstruktor für eine Klasse von einer anderen Klasse abgeleitet , müssen Sie jedoch explizit der Basisklasse Konstruktor .
Methode Symbole und die "Super " Keyword
der Konstruktor veranschaulicht einen wichtigen Aspekt der Klassen: oft die Methoden einer abgeleiteten Klasse " überschreiben " die Methoden der Basis -Klasse mit dem gleichen Namen der Methode , um neue Funktionen zu definieren. Jedoch, wie in dem Fall der Konstrukteur muss der abgeleiteten Klasse Methode aufzurufen der Basisklasse Verfahren aus irgendeinem Grund. Wenn Sie direkt und rufen Sie die Methode der Basisklasse versuchen , erhalten Sie eine " Symbol kann nicht gefunden werden "-Fehler. Zum Beispiel kann das Überschreiben der "out" -Methode einer Basisklasse getan werden, aber man kann nicht rufen die Basisklasse Version von " out" direkt . Stattdessen müssen Sie die "super" Stichwort , um den Anruf zu machen, wie dieses Beispiel zeigt :
Klasse X { public void returnNum (int x ) {return x ;}}
Klasse Y erstreckt X { public void returnNum () { int z = super ( 5 ) //ruft Klasse X " returnNum " methodreturn z * z ;}}