Bij het programmeren in Java , obscure waarschuwingsberichten kunnen tijdens compilatie verschijnen . Het bepalen van de bron van deze fouten kan een probleem worden als u zich niet bewust van de context van de fout of hoe het aan te pakken . In het geval van het symbool hanteren , kan Java- programma's die objecten en overerving gebruik een moeilijke debugging situatie presenteren . Het is echter belangrijk dat de regels van klasse overerving herinneren in Java , zodat een fout , zoals een " symbool niet gevonden" effectief kunnen worden getraceerd . De " Kan niet vinden Symbol" Fout Bij het uitvoeren van een Java-programma , het programma wordt eerst gecompileerd in bytecode . Concreet betekent dit dat de compiler controleert alle variabelen , methoden en objecten gedeclareerd in de code en creëert een soort referentie voor de variabele of methodenamen . Deze namen , of " symbolen " vertegenwoordigen de locatie in het geheugen van de variabele , object of methode . Als je de programmeur probeert een variabele of methode te gebruiken zonder eerst te verklaren , zal de compiler een fout aangeeft dat een variabele of methode onder de opgegeven naam bestaat niet " kan het symbool niet vinden " . < Br geven > Java- klassen en Inheritance Hoe symbolen worden gedefinieerd wordt een beetje meer nuances als het over Java-klasse overerving . Als u Java- objecten te maken , kunt u deze objecten afkomstig van andere klassen die reeds bestaan . Daarbij , de afgeleide klasse " erft " de methoden en variabelen van de basisklasse . In het geval van vererving , een methode of variabele gedeclareerd in een base class wordt rechtstreeks verwezen vanuit de erven van de klasse , wat betekent dat die symbolen zijn in het afleiden van de klas . Java Constructors en Inheritance < br > Een bijzondere methode in alle klassen , afgeleid of niet , is de constructeur . De " standaard " constructor geheugen toewijst voor een object als je het instantiëren in uw programma . Echter , kunt u een aangepaste constructor om waarden van variabelen te initialiseren of lopen andere subroutines wanneer een object wordt gecreëerd te creëren . Bij het maken van een aangepaste constructor voor een klasse afgeleid van een andere klasse , echter , moet u expliciet noemen constructor van de basisklasse 's . Method symbolen en de " Super " Keyword de constructor illustreert een belangrijk aspect van klassen vaak de werkwijzen van een afgeleide klasse " forceren" methoden van de basisklasse met dezelfde methode naam nieuwe functionaliteit definiëren . Zoals in het geval van de constructor de afgeleide klasse methode moet methode basisklasse voor reden roepen . Als je probeert en direct bellen met de methode van de basisklasse , zal je een " symbool kan niet worden gevonden" foutmelding . Bijvoorbeeld , het overschrijven van de "out "-methode van een base class kan worden gedaan , maar je kunt niet de basisklasse versie van " out " direct bellen . In plaats daarvan moet u de " super " keyword gebruiken om te bellen , omdat dit voorbeeld illustreert : Klasse X { public void returnNum ( int x ) {return x ; } } Class Y breidt X { public void returnNum ( ) { int z = super ( 5 ) ; //oproepen klasse X 's " returnNum " methodreturn z * z ; } }
|