2017-02-17 5 views
-1

ich java lerne und ich bin vor Problem, während eine Variable in einer Methode der Klasse A aus der Klasse B. mein Code Hier ist definiert Zugriff:Wie für den Zugriff auf Wert der Variablen „i“ von anderer Klasse

public class A{ 
...... 
...... 
public int dummy(){ 
for(int i=1; i<=10; i++){ 
//here are some code 
} 

Ich möchte auf den Wert von i in unter Klasse B zugreifen. Ich wurde versucht, dies zu erreichen, aber keinen Erfolg erzielen.

public class B{ 
..... 
..... 
A var1 = new A(); 
int new = var1.i; 
} 
+0

Sie können in diesem Fall nicht. Sie sollten ein grundlegendes Java-Tutorial für die grundlegenden Konzepte und die Syntax lesen. – pvg

+3

Sie können nicht auf lokale Variablen außerhalb der definierten Methode zugreifen. Und 'neu' ist ein reserviertes Schlüsselwort. – shmosel

+0

Gibt es eine Möglichkeit, auf diese Variable zuzugreifen, ich? Was sollte ich in meinem Code ändern? –

Antwort

0

Wenn Sie wirklich i von außen A zugreifen möchten, werden Sie es ein öffentliches Mitglied machen müssen, wie folgt aus:

public class A{ 
    public int i; 
    public int dummy(){ 
     for(i=1; i<=10; i++){ 
      // some code 
     } 
    } 
} 

Es für nicht viel ist, was Sie beschreiben, obwohl. Normalerweise wird ein Iterator wie der Index i als lokal für die Schleife deklariert (außerhalb der Schleife nicht zugänglich, geschweige denn die Funktion oder Klasse), da er außerhalb der Schleife keine Bedeutung hat.

0

Sie können dies nicht tun, die Variable i, die in der for-Schleife deklariert wird, ist nur innerhalb der for-Schleife accessibil.

Wenn Sie auf die Variable so zugreifen möchten, wie Sie es versuchen, müssen Sie sie als Instanzvariable oder statische Variable deklarieren.

public class A{ 
public int j; 
...... 
public int dummy(){ 
for(int i=1; i<=10; i++){ 
j = i; 
} 
} 
0

In Ihrer aktuellen Implementierung können Sie nicht i zugreifen, da es vor Ort in Ihrer for-Schleife deklariert und nicht als Mitglied Variable oder einer statischen Variablen der Klasse A. Sie auch keine Variable new, als new benennen ist ein reserviertes Wort.

public class A { 
    private int i = 1; 
    public int getI() { 
     return this.i; 
    } 
} 

public class B { 
    public void someMethod() { 
     A var1 = new A(); 
     int var2 = var1.getI(); 
    } 
} 
0
public class A{ 

    public A(){ 

    } 

    public int dummy(){ 

     int i; 

     for(i=1; i<=10; i++){ 
      //here are some code 
     } 

     return i; 
    } 
} 


public class B{ 

    public B(){ 
     A var1 = new A(); 
     int new = var1.dummy(); 
    } 
} 

das?

Verwandte Themen