2016-05-18 8 views
-3
class A 
{ 
    public void sum() 
    { 
     int i=5,j=5; 
     System.out.println("Sum of "+i+" and "+j); 
    } 
} 
class In extends A 
{ 
    public static void main(String args[]) 
    { 
     A obj=new A(); 
     obj.sum(); 
     int result=0; 
     result=i+j; 
     System.out.println(" = "+result); 
    } 
} 

In.java:16: Fehler: Symbolergebnis nicht gefunden = i + j;
Warum tritt der obige Fehler auf?In.java:16: Fehler: Symbolergebnis nicht gefunden = i + j;

+1

'i' und' j' sind lokale Variablen in der Methode 'sum' und existieren daher nicht in' main'. – SomeJavaGuy

+1

Warum haben Sie eine 'sum'-Methode, wenn Sie die eigentliche Addition in der 'main'-Methode durchführen? – Eran

+1

Formatieren Sie auch Ihren Code. – Turing85

Antwort

0

Ganzzahlen i und j sind lokale Variablen in der Funktion sum(), so dass alles außerhalb der Funktion keinen Zugriff darauf hat. Sie können sie zu Mitgliedern der Klasse machen, wenn Sie sie ändern oder auf sie zugreifen möchten. Darüber hinaus gibt es nicht viel zu sagen, da wir den Zweck des Codes nicht kennen

2

Die i und j Variablen sind lokal zu summieren, also nur während seiner Ausführung verfügbar. Obwohl die Summe der Hauptaufrufe gilt, sind die lokalen Variablen der Summe verschwunden, bevor die Steuerung an main zurückgegeben wird (selbst wenn sie außerhalb der Summe sichtbar waren).

0

Wenn Sie i und j global machen, werden Sie den Fehler los.

class A 
{ 
    public static int i = 5; 
    public static int j = 5; 

    public void sum() 
    { 
     System.out.println("Sum of " + i + " and " + j); 
    } 
} 
class In extends A 
{ 
    public static void main(String args[]) 
    { 
     A obj = new A(); 
     obj.sum(); 
     int result = 0; 
     result = i + j; 
     System.out.println(" = " + result); 
    } 
} 
Verwandte Themen